Как получить данные из нескольких индексов в упругом поиске - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть три индекса, все три индекса имеют разностную структуру документа (вложенного), я пытался присоединиться к индексу, но в ES нет соединений. Итак, как я могу получить данные из нескольких индексов через JavaAPI высокого уровня ??

Любая помощь будет признательна, спасибо в adavnce

SearchRequest searchRequest = new SearchRequest("index_1","index_2","index_3");
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); 
sourceBuilder.query(QueryBuilders.termQuery("user", "kimchy"));
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);

1 Ответ

0 голосов
/ 29 сентября 2019

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

Но с помощью Client API (API высокого уровня Java) необходимо преобразовать имена индексов внутри SearchRequest в массив строк.Java varargs ожидает массив. Не уверен, но что-то вроде ниже.

String[] indexArray = new String[]{"index_1","index_2","imdex_3"}
SearchRequest searchRequest = new SearchRequest(indexArray);

Если это не поможет попробовать с Multisearch API, См. : https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/java-rest-high-multi-search.html#java-rest-high-multi-search

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...