Elasticsearch — переход с Java High Level Rest Client на новый Java API-клиент версии 8.xJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Elasticsearch — переход с Java High Level Rest Client на новый Java API-клиент версии 8.x

Сообщение Anonymous »

Я использую новую версию Elasticsearch 8.13 для нового поискового приложения и пытаюсь имитировать приведенную ниже логику, используя новый клиент Java API вместо использования клиента Java High Level Rest, который сейчас устарел. Мне нужно выполнить поиск по нескольким индексам, включая запросы ниже:
1.множественный запрос matchPhrasePrefixQuery, как показано ниже

Код: Выделить всё

BoolQueryBuilder searchTheseFields = QueryBuilders.boolQuery();
for (String searchFields : searchTheseFieldsArray) {
searchTheseFields .should(QueryBuilders.matchPhrasePrefixQuery(searchFields, **SearchText**));
}
2.запросы с несколькими терминами с полями и значениями

Код: Выделить всё

BoolQueryBuilder filterFields = QueryBuilders.boolQuery();
for (Map.Entry entry : filterTheseFields.entrySet()) {
filterFields.must(QueryBuilders.termQuery(entry.getKey(), entry.getValue()));
}
3.запросы с несколькими диапазонами

Код: Выделить всё

BoolQueryBuilder rangeFilter1 = QueryBuilders.boolQuery();
BoolQueryBuilder rangeFilter2 = QueryBuilders.boolQuery();

rangeFilter1.should(QueryBuilders.rangeQuery(key).gte("gteVal").lte("lteVal"))
.should(QueryBuilders.boolQuery().mustNot(QueryBuilders.existsQuery(key)));
И, наконец, добавьте все эти запросы в один построитель запросов, как показано ниже, и вызовите их с помощью клиента.

Код: Выделить всё

BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery()
.must(searchTheseFields)
.must(filterFields)
.filter(rangeFilter1);

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(queryBuilder);
searchSourceBuilder.from(data.getFrom());
searchSourceBuilder.size(data.getSize());

SearchRequest searchRequest = new SearchRequest();
searchRequest.indices(passing indices here);
searchRequest.source(searchSourceBuilder);

SearchResponse response = client.search(searchRequest);
Проблемы, с которыми я столкнулся при попытке использовать новый клиент Java:
BoolQueryBuilder отсутствует, который использовался ранее для создания запросов другого типа и агрегирования. все из них.
Как упомянул @Murat, SearchSourceBuilder тоже нет
Итак, может ли кто-нибудь помочь мне имитировать приведенный выше код, используя новый Java API Клиент Elasticsearch новой версии 8 или выше, например, как мы можем создать несколько запросов разных типов, добавить их все в один запрос и вызвать его с помощью клиента.
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/784 ... -api-clien
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Python logger init to `level=20` (INFO) не показывает отладку, если я позже перейду на `level=10` (DEBUG)
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Как добавить запятую (,) сепаратор на тысячу. Поместите ось x и y в гистограмму High High Android
    Anonymous » » в форуме Android
    0 Ответы
    52 Просмотры
    Последнее сообщение Anonymous
  • Quakrus with Elasticsearch Client не подключается к серверу https elasticsearch
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Quakrus with Elasticsearch Client не подключается к серверу https elasticsearch
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Quakrus with Elasticsearch Client не подключается к серверу https elasticsearch
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»