您应该使用查询过滤器,它将所有查询包装到过滤器中。否则,您将得到解析错误
No filter registered for[query_string]。
您需要将
filter零件更改为:
"filter": { "query": { // <- wraps a query as a filter "query_string": { "fields": [ [ "name", "message" ] ], "query": "Arnold AND Schwarz" } }}@Edit:由于我看到人们可能会注意到,我只粘贴了整个查询的更改部分,包括
filter部分(而不是整个
filtered),所以这里是修改后的全部:
{ "query": { "filtered": { "query": { "bool": { "must": [ { "terms": { "status_type": [ "5" ] } } ] } }, "filter": { "query": { // <- the only difference! "query_string": { "fields": [ [ "name", "message" ] ], "query": "Arnold AND Schwarz" } } } } }, "sort": [ { "total_metrics": { "order": "desc" } } ]}


