我目前正在查询如下:
"query": {
"query_string": {
"query": "direction:OUTGOING AND prot:https OR prot:http OR prot:smtp AND unixtime: [1410812748000 TO 1416899148000]",
"fields": [ "direction", "unixtime"]
}
我需要的是对搜索协议的所有发现的总结(在本例中为http,https和smtp):
http: 5434,
https: 32,
smtp: 18
我怎样才能实现这个目标?
答案 0 :(得分:0)
使用facet解决它
curl "localhost:9200/myindex/_search?pretty=true&search_type=count" -d '{
"query":
{
"query_string" :
{
"query": "proto:http OR proto:https OR proto:smtp"
}
},
"facets": {
"hits": {
"terms": {
"field": "proto"
}
}
}
}'
答案 1 :(得分:0)
由于不推荐使用facet,因此使用聚合是可行的方法。
curl "localhost:9200/myindex/_search?pretty=true&search_type=count" -d '{
"query":
{
"query_string" :
{
"query": "proto:http OR proto:https OR proto:smtp"
}
},
"aggs": {
"hits": {
"terms": {
"field": "proto"
}
}
}
}'