2015-06-27 5 views
1

Я пытаюсь выполнить запрос ниже в поиске эластичного поиска, используя вызов для отдыха, который не обеспечивает результаты агрегирования. Но если я выслушаю тот же запрос в браузере elasticsearch, он дает результаты агрегирования.Эластичный поисковый запрос с использованием отдыха

Запрос:

{ "aggregations": { "by_salary": { "terms": { "field": "salary" } } } } 

Rest вызов:

http://localhost:9200/tcx_transaction/_search?query={ "aggregations": { "by_salary": { "terms": { "field": "salary" } } } } 

Результаты:

"aggregations": { 
    "by_salary": { 
     "doc_count_error_upper_bound": 0, 
     "sum_other_doc_count": 0, 
     "buckets": [ 
      { 
       "key": "manager", 
       "doc_count": 39420 
      } 
      , 
      { 
       "key": "developer", 
       "doc_count": 13140 
      } 
      , 
      { 
       "key": "HR", 
       "doc_count": 4380 
      } 
     ] 
    } 
} 
+0

«Использование покоя вызов» - вы имеете в виду, используя что-то простое, как завиток? – soulcheck

+0

«Запрос», поскольку вы показываете его, должен быть запросом _body_, а не параметром строки запроса, как вы показали. – pickypg

ответ

0

Вы злоупотребляете интерфейс REST. Взгляните на parameters allowed for URI searching. query не является одним из них. q есть, но это специально для очень special type of query.

Как указано выше, то, что вы установили в query, должно быть частью тела HTTP POST.

0

попробуйте установить «свернуться», а затем, из оболочки:

curl -XPOST 'http://localhost:9200/tcx_transaction/_search' -d 
'{ "aggregations": { "by_salary": { "terms": { "field": "salary" } } } }' 
Смежные вопросы