如何为模糊匹配查询添加模糊性?因此,如果有人要搜索“棒球”,它仍然会找到“棒球”文章。目前,我的查询如下所示:
POST /newspaper/articles/_search { "query": { "function_score": { "query": { "multi_match": { "query": "baseball", "type": "phrase", "fields": [ "subject^3", "section^2.5", "article^2", "tags^1.5", "notes^1" ] } } } } }
我正在寻找的一种选择是执行类似的操作,只是不知道这是否是最佳选择。保持基于评分的排序很重要:
"query" : { "query_string" : { "query" : "subject:basball^3 section:basball^2.5 article:basball^2", "fuzzy_prefix_length" : 1 } }
有什么建议吗?
要将模糊性添加到多查询中,您需要按以下说明添加模糊性属性:
{ "query": { "function_score": { "query": { "multi_match": { "query": "baseball", "type": "phrase", "fields": [ "subject^3", "section^2.5", "article^2", "tags^1.5", "notes^1" ], "fuzziness" : "AUTO", "prefix_length" : 2 } } } } }
请注意,文档中的 prefix_length 解释为:
不会被“模糊化”的初始字符数。这有助于减少必须检查的术语数量。预设为0。
要检查 模糊性 的可能值,请访问ES文档。