首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我查询不包含该术语的指示器时,为什么"must_not“不起作用?

当我查询不包含该术语的指示器时,为什么"must_not“不起作用?
EN

Stack Overflow用户
提问于 2018-07-23 21:38:57
回答 1查看 510关注 0票数 1

我有一个ES索引,看起来像这样:

代码语言:javascript
复制
     "_source" : {
      "text_terms" : [
        {
          "term" : "aaa",
          "freq" : 1
        },
        {
          "term" : "西门子",
          "freq" : 1
        },
        {
          "term" : "ccc",
          "freq" : 1
        }
      ]
    }

映射如下所示:

代码语言:javascript
复制
        "text_terms":{
            "type":"nested",
            "properties":{
                "term":{
                    "type":"string",
                    "index":"not_analyzed"
                },
                "freq":{
                    "type":"integer"
                }
             }
    }

现在我想查询包含西门子的单据

代码语言:javascript
复制
"query": {
   "nested": {
      "query": {
         "bool": {
          "must": [{
             "term": { 
               "text_terms.term": "西门子" }
                    }]
                 }
               },
              "path": "text_terms" 
             } 
          }

它起作用了。但是当我想查询不包含西门子的单据时

代码语言:javascript
复制
"query":
     { "nested":
         { "query": {
             "bool": {
               "must_not": [{
                      "term": {
                         "text_terms.term": "西门子" }
                       }]
                   }
                },
           "path": "text_terms" }
           }

为什么这次它不能工作,我可以查询所有的文档,甚至不包含西门子

代码语言:javascript
复制
   "_source" : {
      "text_terms" : [
        {
          "term" : "ddd",
          "freq" : 1
        },
        {
          "term" : "eee",
          "freq" : 1
        }
      ]
    }
EN

回答 1

Stack Overflow用户

发布于 2018-07-24 22:10:34

this issue我知道正确的查询,那就是应该将must_not放在nested之外,如下所示

代码语言:javascript
复制
"query": {
    "bool": {
        "must_not": {
            "nested": {
                "path": "text_terms",
                "query": {
                    "term": {
                        "text_terms.term": "西门子"
                    }
                }
            }
        }
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51480217

复制
相关文章

相似问题

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