【问题标题】:Solr Fuzzy Search With SpacesSolr 带空格的模糊搜索
【发布时间】:2020-10-13 06:14:57
【问题描述】:

我想使用Fuzzy Search Feature of Solr。在我的数据集中,我有一条如下所示的记录:

{
  "lastName": "John Doe"
}

我想使用以下字符串执行多个模糊搜索:

  1. 约翰·D
  2. 约翰·多
  3. 约翰·多伊
  4. 约翰·迪奥
  5. 约翰·肖

我这样执行查询:

  1. 姓氏:“John D”~
  2. 姓氏:“John Do”~
  3. 姓氏:“John Doe”~
  4. 姓氏:“John Deo”~
  5. 姓氏:“John Xeo”~

我希望,查询 1、2、3 和 4 会返回记录。不幸的是,只有查询 3 返回它。正如我从documentation 中了解到的,可以指定允许的最大编辑次数,当我没有指定某些内容时,使用 2 的编辑距离。我认为我使用的语法不正确,因为如果我看一下我的查询,它看起来很像 Proximity Search

但是如何在不使用邻近搜索的情况下模糊搜索包含空格的字符串?

【问题讨论】:

  • 字段类型是什么?如果您想执行这样的模糊匹配,您可能希望将其保留为单个标记,而不是作为单独的标记进行索引 - 但是,有一种解决方法 - 您可以使用复杂的查询解析器 - 它允许您指定 inOrder 并单独对每个单独的令牌应用模糊匹配。 lucene.apache.org/solr/guide/8_6/…

标签: solr solr-search


【解决方案1】:

我的问题似乎是,我确实执行了Proximity Search

  1. 姓:约翰\D~
  2. 姓:John\Do~
  3. 姓:John\Doe~
  4. 姓:约翰\迪奥~
  5. 姓:John\Xeo~

完全按照我的意图工作。我必须确保此处列出的所有特殊字符 https://lucene.apache.org/solr/guide/7_3/the-standard-query-parser.html 都已正确转义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 2013-02-18
    • 2012-06-08
    • 1970-01-01
    相关资源
    最近更新 更多