我正在尝试在ElasticSearch中使用过滤器,但最终我没有得到任何结果。我可以使用带匹配的查询进行一些过滤,但我宁愿使用过滤器,这样我就可以使用嵌套的AND和OR子句。
这是一个例子。这是一个使用匹配查询选择某些记录的示例,eventType
为EiffelArtifactNewEvent
的记录。我添加了一个标记为(* THIS LINE *)
的过滤行,我认为它会完成同样的事情,但事实证明我没有得到任何结果。
我该如何编写以便我只对查询逻辑使用过滤器,并且只使用查询{"match_all":{}}
?
{
"query": {
"filtered": {
"query": {
'match': {'eventType': {'operator': 'and', 'query': 'EiffelArtifactNewEvent'}}
},
"filter": {
"and": [
{ "term" : {"eventType" : "EiffelArtifactNewEvent" } (* THIS LINE*)
(* here I will later add more AND and OR clauses *)
}
]
}
}
}
}