在 Elasticsearch 中使用 not 过滤器
Using `not` filter in Elasticsearch
我在 ElasticSearch 中有以下查询。我正在尝试过滤掉字段 message_class
等于 'SE'.
的文档
我提到了 this SO Q&A,但下面的查询仍然 returns 字段 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"}}
}
由于您使用的是术语 查询 ,分析器未应用于您的查询。假设应用了小写过滤器,以下应该可以正常工作 -
POST _search
{
"query":{
"filtered":{
"filter":{
"not":{
"term":{
"message_class":"se"
}
}
}
}
}
}
我在 ElasticSearch 中有以下查询。我正在尝试过滤掉字段 message_class
等于 'SE'.
我提到了 this SO Q&A,但下面的查询仍然 returns 字段 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"}}
}
由于您使用的是术语 查询 ,分析器未应用于您的查询。假设应用了小写过滤器,以下应该可以正常工作 -
POST _search
{
"query":{
"filtered":{
"filter":{
"not":{
"term":{
"message_class":"se"
}
}
}
}
}
}