在Elasticsearch中使用`not`过滤器

时间:2015-02-03 11:55:20

标签: elasticsearch

我在ElasticSearch中有以下查询。我正在尝试过滤字段message_class等于' SE'

的文档。

除其他事项外,我已提及this SO Q&A,但下面的查询仍会返回字段message_class等于' SE'

的文档。

使用not过滤器的正确方法是什么?

POST _search
{  
   "query":{  
      "filtered":{  
         "filter":{  
            "not":{  
               "term":{  
                  "message_class":"SE"
               }
            }
         }
      }
   }
}

字段_mapping的{​​{1}}显示:

message_class

1 个答案:

答案 0 :(得分:1)

在使用术语查询时,分析器不会应用于您的查询。假设应用了小写过滤器,以下应该可以正常工作 -

POST _search
{  
   "query":{  
      "filtered":{  
         "filter":{  
            "not":{  
               "term":{  
                  "message_class":"se"
               }
            }
         }
      }
   }
}