【发布时间】:2015-02-03 21:37:16
【问题描述】:
我在 ElasticSearch 中有以下查询。我正在尝试过滤掉字段 message_class 等于“SE”的文档。
我提到了this SO Q&A 等,但下面的查询仍然返回字段message_class 等于“SE”的文档。
not 过滤器的正确使用方法是什么?
POST _search
{
"query":{
"filtered":{
"filter":{
"not":{
"term":{
"message_class":"SE"
}
}
}
}
}
}
message_class 字段的 _mapping 显示:
"message_class" : {
"full_name" : "message_class", "mapping" : {"message_class":{"type":"string"}}
}
【问题讨论】:
-
message_class字段的映射是什么?要使用term过滤器,您通常需要一个非分析字段。 -
@mguillermin 我已将信息添加到问题中,谢谢。不知道如何解释它。非常感谢您的帮助。我还可以使用什么其他过滤器?
-
请注意:一般情况下,您应该避免使用
not过滤器 - 使用bool过滤器和must_not子句代替elasticsearch.org/blog/all-about-elasticsearch-filter-bitsets
标签: elasticsearch