elasticsearch - 弹性搜索 match_phrase + fuzziness
问题描述
我正在使用 ElasticSearch,我正在尝试实现 match_phrase/string + fuzziness,但似乎不可能(在线示例不多,文档中没有此类案例)。
我需要的是:词组/字符串匹配 + 模糊性 + slop,分别基于字段的每个值。
到目前为止我已经尝试过(我仍然没有我需要的解决方案):
query_string - 它包含模糊性和倾斜性。但是,它通过一个文档通过该字段的所有值收集一个字符串。
match_phrase - 它包含 slop,但没有模糊性。有什么好处 - 它在字段的至少一个值中查找短语匹配,而不是通过文档字段的所有值收集字符串。
我需要的:
任何人都有短语匹配的经验,包括 ElasticSearch 上的模糊性?
提前致谢。
解决方案
正如我在问题评论部分的链接中提到的那样,您可以为此使用跨度查询。
您进一步寻找的是一种使用 Span Queries控制模糊性的方法。我从这个SOF 答案中举了一个例子,并重写了查询,因为你想管理模糊性。
询问
POST <your_index_name>
{
"query":{
"bool":{
"must":[
{
"span_near":{
"clauses":[
{
"span_multi":{
"match":{
"fuzzy":{
"name":{
"value":"champions",
"fuzziness":2
}
}
}
}
},
{
"span_multi":{
"match":{
"fuzzy":{
"name":{
"value":"league",
"fuzziness":2
}
}
}
}
}
],
"slop":0,
"in_order":false
}
}
]
}
}
}
希望这可以帮助!
推荐阅读
- bash - 从索引数组中提取索引:保证是有序的?
- spring-boot - 开发通用微服务的最佳实践
- shell - 如何使用 MMD Parser 生成带有页码的目录
- java - Apache POI - 单元格的间歇颜色
- github - 如何禁用对 Google Cloud Build 的 Github 检查
- python - scikit-learn 中的 Multivariate imputer 与 Simple imputer 有何不同?
- matlab - 预查找插值
- excel - Excel VBA:高级过滤器,找不到匹配项时如何显示 MsgBox
- javascript - 如何在 A-Frame 中获取相机位置和旋转?
- excel - 将多个字符串转换为超链接后如何保持数字格式