我想根據我的過濾規則對文檔數量進行彙總和計數。使用彈性搜索API彙總過濾結果
我看着從他們的網站的API:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filters-aggregation.html
,並與該出來了:
{ "size": 0,
"aggregations": {
"messages": {
"filters":{
"filters": {
"knowledge service": { "match": {"syslog_msg": "my-domain.com"}}
}
}
}
}
}
「syslog_msg」 可以包含諸如 「my-domain.com一些其他的價值。」
我得到的迴應:
{
"_scroll_id" : "some scroll id",
"took" : 89,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1000000,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"messages" : {
"buckets" : {
"knowledge service" : {"doc_count" : 12000}
}
}
}
}
它似乎工作正常,但是當我跑的查詢看12000條記錄,其中一些沒有精確匹配的字符串(在這種情況下,我-domain.com),我搜索。
例如,某些文檔在syslog_msg中包含字符串「my」而不是「my-domain.com」。
如何更改查詢,以便過濾我正在查找的字符串的完全匹配?
的解決辦法是更換匹配match_phrase這將搜索並返回精確短語找到