gpt4 book ai didi

elasticsearch - 带有嵌套AND/OR查询的Elasticsearch

转载 作者:行者123 更新时间:2023-12-03 00:48:59 25 4
gpt4 key购买 nike

我正在努力编写具有多个AND / OR条件的 flex 搜索查询。

基本上涉及以下逻辑:cond1 && (cond2 || cond3 || cond4)
docs中所述,如果文档仅满足must子句,则将其视为匹配项。在这种情况下,should子句起到了促进作用,即,如果文档除must子句之外还匹配一个或多个should子句,则假设cond2,cond3和cond4是计算相关性得分。

问题是我只希望文档也符合至少一个OR条件。

请注意,我正在运行ES6.3。我也尝试过Multiword queries,但这些结果也是错误的。

添加boost似乎不会影响结果,我得到的结果仅与第一个条件匹配。

{
"query": {
"bool": {
"must": [
{
"term": {
"event.keyword": {
"value": "webhook.trigger"
}
}
}
],
"should": [
{
"match": {
"metaData.webhook.title": "My Example Title 1"
}
},
{
"match": {
"metaData.webhook.title": "Testing"
}
},
{
"match": {
"metaData.webhook.url": "myurl.com"
}
}
]
}
}
}

最佳答案

仅当没有should查询时,must查询的工作方式类似于。在您的情况下,您应该将should查询包装在另一个bool查询中。

{
"query": {
"bool": {
"must": [
{
"term": {
"event.keyword": {
"value": "webhook.trigger"
}
}
},
{
"bool": {
"should": [
{
"match": {
"metaData.webhook.title": "My Example Title 1"
}
},
{
"match": {
"metaData.webhook.title": "Testing"
}
},
{
"match": {
"metaData.webhook.url": "myurl.com"
}
}
]
}
}
]
}
}
}```

关于elasticsearch - 带有嵌套AND/OR查询的Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56491091/

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