Elastic search 6.2 альтернатива для размера [0] параметров предыдущих версий - PullRequest
0 голосов
/ 04 сентября 2018

В предыдущих версиях ES, когда мы не знали ожидаемый размер результата конкретного запроса с агрегацией, мы передавали size: 0. Но в версиях ES 6.2.x параметр size не может быть установлен в 0 (ноль), он выдает следующее исключение:

java.lang.IllegalArgumentException: [size] must be greater than 0.

Так каков альтернативный способ сделать это? Я новичок в ES. Я провел поиск в сети и обнаружил, что для этого используется scroll и это решение на SO . Я пробовал использовать функцию прокрутки, но мне кажется, что я что-то не так сделал, что получаю следующее исключение:

org.elasticsearch.search.SearchContextMissingException: No search context found for id [1578]

И я не знаю, как сделать второй вариант в Java. Любая помощь будет отличной. Спасибо.

EDIT
Запрос, который я сейчас использую, так как размер параметра не задан, он возвращает только 10 результатов:

    QueryBuilder qb=  QueryBuilders
            .boolQuery()
            .must(termQuery("Key", Val));
    SearchRequestBuilder requestBuilder = client.prepareSearch()
            .setIndices()
            .setTypes(getType())
            .setScroll(new TimeValue(ES_TIMEOUT_MS))
            .setQuery(qb);
    //requestBuilder.setFrom(0);
   // requestBuilder.setSize(0);
    requestBuilder.addAggregation((terms("name").field("name"))
            .subAggregation(topHits("top").size(1).fetchSource(new String[]{ "name","numPosts", "timeCreated", "timeLastActivity", "Key", "indexVersion"},null)));
    SearchResponse response = requestBuilder.execute().actionGet(ES_TIMEOUT_MS);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...