需要一种方法让我的搜索引擎处理搜索字符串中的小拼写错误,并仍然返回正确的结果 .
根据ElasticSearch文档,有三个值与文本查询中的模糊匹配相关: fuzziness , max_expansions 和 prefix_length .
不幸的是,关于这些参数究竟做了什么,以及它们的合理值是什么,并没有很多详细信息 . 我知道模糊性应该是0到1.0之间的浮点数,其他两个是整数 .
任何人都可以为这些参数推荐合理的“起点”值吗?我确信我将不得不通过反复试验来调整,但我只是在寻找球场 Value 来正确处理拼写错误和拼写错误 .
2 回答
根据Fuzzy Query doc, min_similarity (看起来像 fuzziness 选项)的默认值是
0.5
, max_expansions 的"unbounded"和 prefix_length 的0
.This answer应该可以帮助您理解 min_similarity 选项 .
0.5
似乎是一个好的开始 .prefix_length 和 max_expansions 会影响性能:您可以尝试使用默认值进行开发,但请确保它不会缩放(lucene developers were even considering setting a default value of 2 for prefix_length) . 我建议运行基准测试以找到适合您特定情况的正确值 .
我发现在使用模糊查询实际使用术语查询和模糊查询(使用相同的术语)以便检索拼写错误的结果时,它也很有帮助,但也确保输入的搜索词的实例在结果中出现得最高 .
I.E.
这里列出的更多细节:https://medium.com/@wampum/fuzzy-queries-ae47b66b325c