gpt4 book ai didi

elasticsearch - 多重匹配并将查询一起匹配

转载 作者:行者123 更新时间:2023-12-02 22:49:58 25 4
gpt4 key购买 nike

我在 flex 搜索中有以下查询:

{
"query": {
"multi_match": {
"query": "bluefin bat",
"type": "phrase",
"fields": [
"title^5",
"body.value"
]
}
},
"highlight": {
"fields": {
"body.value": {
"number_of_fragments": 3
}
}
},
"fields": [
"title",
"id"
]
}

我尝试使用“dis_max”,但是必须在我的两个字段中搜索相同的查询。
其余的匹配查询具有不同的查询文本。

其余的匹配查询是这样的:
{
"query": {
"match": {
"ingredients": "key1, key2",
"analyzer": "keyword_analyzer"
}
}
}

如何在不使用dis_max的情况下集成这两个查询。

最佳答案

我想出了答案。 multi_match内部适用:

"dis_max"

因此,您不能将 dis_maxmulti_match一起应用。
但是我可以做的是我可以应用 bool查询来解决这种类型的问题。

我可以应用实际上转换为 should bool(boolean) 值的 OR,也可以应用与 must等效的 AND

所以这就是我修改查询的方式:
{
"query": {
"bool":{
"should": [
{"multi_match":
{"query": "SOME_QUERY",
"type": "phrase",
"fields": ["title^5","body"]
}
},
{
"match":{
"labels" :{
"query": "SOME_QUERY",
"analyzer": "keyword_analyzer"
}
}
},
{
"match":{
"displayName" :{
"query": "SOME_QUERY",
"fuzziness": "AUTO"
}
}
}
],
"minimum_number_should_match": "50%"
}
},
"fields": ["title","id","labels","displayName","username"],
"highlight": {
"fields": {
"body.storage.value": {
"number_of_fragments": 3}
}
}
}

我希望这对以后的人有所帮助。

关于elasticsearch - 多重匹配并将查询一起匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36743185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com