gpt4 book ai didi

elasticsearch - 带有嵌套和非嵌套子句的Elasticsearch Bool查询

转载 作者:行者123 更新时间:2023-12-03 01:39:47 25 4
gpt4 key购买 nike

我有嵌套和非嵌套组件的数据。我无法重新映射数据,它正在生产中。样本为

{
"name":[
"first":"Tom",
"last":"Smith"
],
"status":"married"
}

我需要查询嵌套以及非嵌套值。即,所有未“结婚”但名字为“Tom”的条目。

要仅针对“Tom”进行查询,我会
GET /_search
{
"query": {
"nested": {
"path": "name",
"query": {
"bool": {
"must": [
{
"match" : {"name.first" : "Tom"}}
]
}
}
}
}
}

但是如何将其与状态查询(非嵌套)的must_not查询结合使用

最佳答案

您需要在must_not后面放置一个must。我在环境中进行了测试(除了我使用term而不是match),它过滤了不需要的元素。

GET /_search
{
"query": {
"nested": {
"path": "name",
"query": {
"bool": {
"must": [
{
"match" : {"name.first" : "Tom"}}
],
"must_not": [
{
"match" : {"status" : "married"}}
]
}
}
}
}
}

关于elasticsearch - 带有嵌套和非嵌套子句的Elasticsearch Bool查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48692982/

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