2015-01-21 3 views
1

В настоящее время я запрашивая следующим образом:Поиск/кол и агрегат для различных терминов

"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

решаемые его с помощью фасетов

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" 
     } 
    } 
    } 
}' 
0

Поскольку фасеты устарели, используя агрегированные это путь.

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" 
    } 
    } 
} 
}' 
Смежные вопросы