首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch:过滤缺少字段的文档,除非存在其他字段

问Elasticsearch:过滤缺少字段的文档,除非存在其他字段
EN

Stack Overflow用户
提问于 2016-07-18 18:10:11
回答 1查看 529关注 0票数 0

我正在执行一个Elasticsearch查询,该查询过滤掉所有文档,其中某个特定字段通过

代码语言:javascript
复制
query: {
  filtered: {
    filter: {
      bool: {
        should: {
          bool: {
            must: {
              term: 'someCondition'
            },
            must_not: {
              missing: {field: 'somefield'}
            }
          }
        }
      }
    }
  }
}

这与预期的一样。现在,我需要使此missing筛选器具有条件,以便只有在另一个字段不存在时才匹配。

我曾尝试将我的must_not转换为should,如下所示:

代码语言:javascript
复制
should: {
  missing: {field: 'somefield'},
  exists: {'field': 'somotherfield'}
}

但这似乎并不管用。

澄清一下:"SELECT * from docs (某字段不为空或其他字段不为空)“

EN

回答 1

Stack Overflow用户

发布于 2016-07-19 15:39:16

尝试如下查询:

代码语言:javascript
复制
"filters" : [ {
"missing" : {
        "field" : "somefield"
  }
}, {
  "not" : {
    "filter" : {
      "missing" : {
        "field" : "somotherfield"
      }
    }
  }
} ]
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38434027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档