Elasticsearch - возможен запрос нескольких индексов?

У меня есть кластер elasticsearch с тремя индексами:

/users/user
/events/visit
/events/register
/pages/page

Итак, теперь мне нужно запустить запросы, обрабатывающие несколько индексов.

Например: Получить пол пользователей, зарегистрированных на странице X. (Чтобы получить эту информацию, мне нужна информация из нескольких индексов.)

Возможно ли это? Может быть, интегрировать хаоп?

Ответ 1

Это очень просто в самом Elasticsearch! В любое время, когда вы указали бы индекс, вы можете разделить дополнительные индексы запятой.

curl -XGET 'http://localhost:9200/index1,index2/_search?q=yourQueryHere'

Вы также можете искать все индексы с помощью _all.

curl -XGET 'http://localhost:9200/_all/_search?q=yourQueryHere'

Вот некоторая полезная документация с сайтаasticsearch. Этот сайт имеет тонны информации, но иногда его немного сложно найти, ИМО.

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-search.html https://www.elastic.co/guide/en/elasticsearch/reference/current/multi-index.html

Ответ 2

Не ограничивая наш поиск определенным индексом или типом, мы просматривали все документы в кластере. Elasticsearch отправил запрос поиска параллельно первичной или реплике каждого осколка в кластере.

       1)/users,events,pages/_search : Search all types in the users,events and pages

       2)/u*,e*,p*/_search : Search all types in any indices beginning with u,e or beginning with p

       3)/events/visit,register/_search : Search types visit and register in the events index

       4) /_all/user,visit,register,page/_search : Search types users,events and pages in specified indices

Ответ 3

Поисковый запрос можно выполнять по нескольким индексам:

например:

curl -X POST \
'http://localhost:9200/test1,test2/_search?pretty=' \
-H 'Content-Type: application/json' -d '{
    "query": {
    ...
    }
}
'