Как отключить пагинацию в elasticsearch

208
06 октября 2021, 04:40

Создаю запрос в elasticsearch через NativeSearchQueryBuilder(), но ответ приходит мне в форме страниц, т.е. 10 записей.

Вопрос: Как отключить пагинацию с помощью builder'ов elasticsearch?

Answer 1

Можно принудительно переопределить параметры From и Size, которые отвечают за постраничную навигацию, необходимыми Вам значениями.

Например так (из документации):

SearchResponse response = client.prepareSearch("index1", "index2")
    .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
    .setQuery(QueryBuilders.termQuery("multi", "test"))                 // Query
    .setPostFilter(QueryBuilders.rangeQuery("age").from(12).to(18))     // Filter
    .setFrom(0).setSize(60).setExplain(true)
    .get();

Подробнее в документации: https://www.elastic.co/guide/en/elasticsearch/client/java-api/7.x/java-search.html

Answer 2

Нашёл метод .size()

У меня теперь так:

val query = NativeSearchQueryBuilder()
            .withSearchType(SearchType.DEFAULT)
            .withIndices("task_elastic")
            .addAggregation(AggregationBuilders
                    .terms("city")
                    .field("city").size(Int.MAX_VALUE))
            .build()

Видимо этот метод есть и у term, и у подобных методов

READ ALSO
SUM () OVER (Partition By) на MySQL 5.7

SUM () OVER (Partition By) на MySQL 5.7

Гуру MySQL, подскажите, как синтаксически переписать примерно такой запрос, где используется SUM (

254
mysql: сравнение значения поля со значениями из вложенных запросов (count)

mysql: сравнение значения поля со значениями из вложенных запросов (count)

подскажите пожалуйста как разобраться со следующей ситуацией:

250
Waiting for table metadata lock

Waiting for table metadata lock

Пытаюсь через ESF Migration ToolKit перекинуть данные с MySql в MsSql, так он почему-то зависает на попытке получить структуру БД

202