Как контролировать результаты агрегации эластичного поиска с From / Size?

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

 {
    "from": 0, // to add the start to control the pagination
    "size": 10,
    "query": { } 
 }

это довольно ясно, но когда я хочу добавить нумерацию страниц к агрегации, я много об этом читал, но ничего не смог найти, мой код выглядит так,

{
  "from": 0,
  "size": 0,
  "aggs": {
    "group_by_name": {
      "terms": {
        "field": "name",
        "size": 20
      },
      "aggs": {
        "top_tag_hits": {
          "top_hits": {
            "size": 1
          }
        }
      }
    }
  }
}

Есть ли способ создать нумерацию страниц с помощью функции или каких-либо других предложений?

1 ответ

Похоже, вы, вероятно, хотите разделов. Из документов:

Иногда слишком много уникальных терминов для обработки в одной паре запрос / ответ, поэтому может быть полезно разбить анализ на несколько запросов. Это может быть достигнуто путем группировки значений поля в несколько разделов во время запроса и обработки только одного раздела в каждом запросе.

В основном вы добавляете "include": { "partition": n, "num_partitions": x },, где n это страница и x это количество страниц.

К сожалению, эта функция была добавлена ​​сравнительно недавно. Если вы можете поверить тегам в GitHub Issue, которая породила эту функцию, вам нужно использовать Elasticsearch версии 5.2 или выше.

Другие вопросы по тегам