带有模糊性的多个字段上的ElasticSearch multi_match查询

如何为模糊匹配查询添加模糊性?因此,如果有人要搜索“棒球”,它仍然会找到“棒球”文章。目前,我的查询如下所示:

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

}

}

}

}

}

请注意,文档中的 解释为:

不会被“模糊化”的初始字符数。这有助于减少必须检查的术语数量。预设为0。

要检查

的可能值,请访问ES文档。

以上是 带有模糊性的多个字段上的ElasticSearch multi_match查询 的全部内容, 来源链接: utcz.com/qa/433300.html

回到顶部