问题描述
我想使用Fuzzy Search Feature of Solr。在我的数据集中,我有一条看起来像这样的记录:
{
"lastName": "John Doe"
}
我想用以下字符串执行多个模糊搜索:
- 约翰D
- John Do
- John Doe
- John Deo
- John Xeo
我这样执行查询:
- 姓氏:“约翰D”〜
- 姓氏:“约翰·道”〜
- 姓:“ John Doe”〜
- 姓氏:“约翰·迪奥”〜
- 姓:“ John Xeo”〜
我希望查询1、2、3和4返回记录。不幸的是,只有查询3返回它。从documentation可以理解,可以指定允许的最大编辑数量,当我没有指定内容时,将使用2的编辑距离。我认为我使用的语法不正确,因为如果我看一下查询,它看起来很像Proximity Search。
解决方法
我的问题似乎是我确实执行了Proximity Search。
- 姓氏:John \ D〜
- 姓氏:John \ Do〜
- 姓氏:John \ Doe〜
- 姓氏:John \ Deo〜
- 姓氏:John \ Xeo〜
完全按照我的预期工作。我必须确保https://lucene.apache.org/solr/guide/7_3/the-standard-query-parser.html此处列出的所有特殊字符均已正确转义。