Cla*_*ell 12 search fuzzy-search elasticsearch
需要一种方法让我的搜索引擎处理搜索字符串中的小拼写错误,并仍然返回正确的结果.
根据ElasticSearch文档,有三个值与文本查询中的模糊匹配相关:模糊性,max_expansions和prefix_length.
不幸的是,关于这些参数究竟是做什么的,并没有很多详细信息,以及它们的合理值.我知道模糊性应该是0到1.0之间的浮点数,而另外两个是整数.
任何人都可以为这些参数推荐合理的"起点"值吗?我确信我将不得不通过反复试验来调整,但我只是在寻找球场价值来正确处理拼写错误和拼写错误.
rob*_*rob 16
我发现在使用模糊查询实际使用术语查询和模糊查询(使用相同的术语)以便检索拼写错误的结果时,它也很有帮助,但也确保输入的搜索词的实例在结果中出现得最高.
IE
{
"query": {
"bool": {
"should": [
{
"match": {
"_all": search_term
}
},
{
"match": {
"_all": {
"query": search_term,
"fuzziness": "1",
"prefix_length": 2
}
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
这里列出的更多细节:https://medium.com/@wampum/fuzzy-queries-ae47b66b325c
按照模糊查询文档,默认值是0.5用于min_similarity(它看起来像你的模糊选项),对于"无界" max_expansions和0对的prefix_length.
这个答案应该可以帮助您理解min_similarity选项.0.5似乎是一个好的开始.
prefix_length和max_expansions会影响性能:您可以尝试使用默认值进行开发,但请确保它不会扩展(lucene开发人员甚至考虑为prefix_length设置默认值2).我建议运行基准测试以找到适合您特定情况的正确值.
| 归档时间: |
|
| 查看次数: |
7043 次 |
| 最近记录: |