gpt4 book ai didi

elasticsearch - 混合 bool 和多重匹配/函数分数查询

转载 作者:行者123 更新时间:2023-11-29 02:44:46 25 4
gpt4 key购买 nike

我目前正在执行一个混合了多重匹配和函数得分的查询。 JSON 的重要部分如下所示:

"function_score":{
"query":{
"query_string":{
"query":"some query",
"fields":["id","name","strippedDescription","colourSearch","sizeSearch"]
}
}
}

但是,我还想包括不一定与查询匹配但具有大于 0 的特定数值的结果。我认为 bool 查询可以做到这一点,但我不知道如何使用 bool使用函数评分查询进行查询。

我知道多重匹配查询只是 bool 查询的简写,我可以将多重匹配查询扩展到它的 bool 对应部分,但是,我不知道如何在其中进行函数评分.

有什么想法吗?顺便说一句,我使用的是 1.1.0 版。

最佳答案

想通了!我错过了一个事实,即您可以在 bool 查询中嵌套多字段查询!我的最终解决方案如下所示:

{
"query":{
"function_score":{
"query":{
"bool":{
"should": [
{
"range": {
"allBoost": {
"gt": 0
}
}
},{
"multi_match":{
"query":"some search query",
"fields":[
"id",
"name",
"description",
"category"
]
}
}
]
}
},
"functions":[
{
"filter":{
"range": {
"allBoost": {
"gt": 0
}
}
},
"script_score":{
"script":"doc['allBoost'].value"
}
},
{
"filter":{
"range": {
"allBoost": {
"lte": 0
}
}
},
"script_score":{
"script":"_score"
}
}
],
"boost_mode": "replace"
}
}
}

关于elasticsearch - 混合 bool 和多重匹配/函数分数查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22830492/

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