带空间的Solr模糊搜索

问题描述

我想使用Fuzzy Search Feature of Solr。在我的数据集中,我有一条看起来像这样的记录:

{
  "lastName": "John Doe"
}

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

  1. 约翰D
  2. John Do
  3. John Doe
  4. John Deo
  5. John Xeo

我这样执行查询

  1. 姓氏:“约翰D”〜
  2. 姓氏:“约翰·道”〜
  3. 姓:“ John Doe”〜
  4. 姓氏:“约翰·迪奥”〜
  5. 姓:“ John Xeo”〜

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

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

解决方法

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

  1. 姓氏:John \ D〜
  2. 姓氏:John \ Do〜
  3. 姓氏:John \ Doe〜
  4. 姓氏:John \ Deo〜
  5. 姓氏:John \ Xeo〜

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