Запрос Elasticsearch для возврата всех записей


490

У меня есть небольшая база данных в Elasticsearch, и в целях тестирования я хотел бы получить все записи обратно. Я пытаюсь использовать URL-адрес в форме ...

http://localhost:9200/foo/_search?pretty=true&q={'matchAll':{''}}

Может кто-нибудь дать мне URL, который вы бы использовали для этого, пожалуйста?


1
... где "foo" - это имя индекса, для которого вы хотите показать все записи.
— Джонатан

Ответы:


744

Я думаю, что синтаксис Lucene поддерживается так:

http://localhost:9200/foo/_search?pretty=true&q=*:*

размер по умолчанию равен 10, поэтому вам также может понадобиться &size=BIGNUMBERполучить более 10 предметов. (где BIGNUMBER равен числу, которое, по вашему мнению, больше, чем ваш набор данных)

НО, документацияasticsearch предлагает для больших наборов результатов, используя тип поиска сканирования.

НАПРИМЕР:

curl -XGET 'localhost:9200/foo/_search?search_type=scan&scroll=10m&size=50' -d '
{
    "query" : {
        "match_all" : {}
    }
}'

и затем продолжайте запрашивать согласно предложенной выше ссылке на документацию.

РЕДАКТИРОВАТЬ: scanустарел в 2.1.0.

scanне предоставляет никаких преимуществ по сравнению с обычным scrollзапросом, отсортированным по _doc. ссылка на эластичные документы (замечено @ christophe-roussy)


6
Спасибо. Это был последний раз, когда я придумал, который возвращает то, что мне сейчас нужно ... localhost: 9200 / foo / _search? Size = 50 & pretty = true & q = *: *
— Джон Ливермор,

2
Добавление к @ ответ Стива, вы можете найти список параметров , которые elasticsearch понимает в этой связи elasticsearch.org/guide/reference/api/search/uri-request
— Karthick

1
Спасибо @Steve за ваш ответ. Я не думаю, что это было достаточно важно для нового вопроса. Это нигде не было явно указано, поэтому я решил попросить здесь просто проверить.
— Чурро

8
Вы действительно должны использовать scan + scroll-запросы. Если вы используете size = BIGNUMBER, обратите внимание, что Lucene выделяет память для оценок для этого числа, поэтому не делайте его слишком большим. :)
— Алексей Брасетвик

4
Сканирование устарело в устаревшем в 2.1.0 : astic.co/guide/en/elasticsearch/reference/current/…
— Кристоф Руссси,

137
http://127.0.0.1:9200/foo/_search/?size=1000&pretty=1
                                   ^

Обратите внимание на параметр размера , который увеличивает количество отображаемых обращений со значения по умолчанию (10) до 1000 за шард.

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-from-size.html


10
Однако следует помнить одну вещь (из документов Elasticsearch): обратите внимание, что значение from + size не может быть больше, чем значение индекса index.max_result_window, которое по умолчанию равно 10 000.
— user3078523

2
Это вернет 1000, не все, user3078523 прав, у этого метода есть пределmax_result_window
— stelios

1
У него есть максимум, а также (если у вас есть много тысяч записей), это довольно нелепый подход к достижению этого максимума. Вместо этого вы должны использовать запрос «прокрутки».
— Гарри Вуд

37

asticsearch (ES) поддерживает запрос GET или POST для получения данных из индекса кластера ES.

Когда мы делаем GET:

http://localhost:9200/[your index name]/_search?size=[no of records you want]&q=*:*

Когда мы делаем POST:

http://localhost:9200/[your_index_name]/_search
{
  "size": [your value] //default 10
  "from": [your start index] //default 0
  "query":
   {
    "match_all": {}
   }
}   

Я бы предложил использовать плагин для пользовательского интерфейса сasticsearch http://mobz.github.io/elasticsearch-head/ Это поможет вам лучше понять создаваемые вами индексы, а также протестировать ваши индексы.


3
Как упомянул другой пользователь: from+ sizeне может быть больше значения index.max_result_windowиндекса, по умолчанию
— равного

Этот подход имеет максимум, а также (если у вас есть много тысяч записей), это довольно нелепый подход, чтобы идти к этому максимуму. Вместо этого вы должны использовать запрос "прокрутки"
— Гарри Вуд

Как ни странно, официальные документы показывают, curl -XGET ... -d '{...}'что это unофициальный смешанный стиль запроса. Спасибо за показ правильных форматов GET и POST.
— Джесси Чисхолм

28

Примечание . Ответ относится к более старой версии Elasticsearch 0.90. Версии, выпущенные с тех пор, имеют обновленный синтаксис. Пожалуйста, обратитесь к другим ответам, которые могут дать более точный ответ на последний ответ, который вы ищете.

Приведенный ниже запрос вернет NO_OF_RESULTS, который вы хотели бы получить ..

curl -XGET 'localhost:9200/foo/_search?size=NO_OF_RESULTS' -d '
{
"query" : {
    "match_all" : {}
  }
}'

Теперь вопрос в том, что вы хотите, чтобы все записи были возвращены. Естественно, перед написанием запроса вы не будете знать значение NO_OF_RESULTS .

Как мы узнаем, сколько записей существует в вашем документе? Просто введите запрос ниже

curl -XGET 'localhost:9200/foo/_search' -d '

Это даст вам результат, который выглядит так, как показано ниже

 {
hits" : {
  "total" :       2357,
  "hits" : [
    {
      ..................

В результате общая сумма показывает, сколько записей доступны в документе. Итак, это хороший способ узнать значение NO_OF RESULTS

curl -XGET 'localhost:9200/_search' -d ' 

Поиск всех типов по всем показателям

curl -XGET 'localhost:9200/foo/_search' -d '

Поиск всех типов в индексе foo

curl -XGET 'localhost:9200/foo1,foo2/_search' -d '

Поиск всех типов в индексах foo1 и foo2

curl -XGET 'localhost:9200/f*/_search

Поиск всех типов в любых индексах, начинающихся с f

curl -XGET 'localhost:9200/_all/type1,type2/_search' -d '

Поиск типов пользователей и твитов по всем показателям


9
По умолчанию ES возвращает 10 результатов, если параметр размера не включен в базовый запрос.
— lfender6445

Предыдущему ответу было три года. Обновил его до текущего.
— vjpandian

19

Это лучшее решение, которое я нашел с помощью клиента Python

  # Initialize the scroll
  page = es.search(
  index = 'yourIndex',
  doc_type = 'yourType',
  scroll = '2m',
  search_type = 'scan',
  size = 1000,
  body = {
    # Your query's body
    })
  sid = page['_scroll_id']
  scroll_size = page['hits']['total']

  # Start scrolling
  while (scroll_size > 0):
    print "Scrolling..."
    page = es.scroll(scroll_id = sid, scroll = '2m')
    # Update the scroll ID
    sid = page['_scroll_id']
    # Get the number of results that we returned in the last scroll
    scroll_size = len(page['hits']['hits'])
    print "scroll size: " + str(scroll_size)
    # Do something with the obtained page

https://gist.github.com/drorata/146ce50807d16fd4a6aa

Использование Java-клиента

import static org.elasticsearch.index.query.QueryBuilders.*;

QueryBuilder qb = termQuery("multi", "test");

SearchResponse scrollResp = client.prepareSearch(test)
        .addSort(FieldSortBuilder.DOC_FIELD_NAME, SortOrder.ASC)
        .setScroll(new TimeValue(60000))
        .setQuery(qb)
        .setSize(100).execute().actionGet(); //100 hits per shard will be returned for each scroll
//Scroll until no hits are returned
do {
    for (SearchHit hit : scrollResp.getHits().getHits()) {
        //Handle the hit...
    }

    scrollResp = client.prepareSearchScroll(scrollResp.getScrollId()).setScroll(new TimeValue(60000)).execute().actionGet();
} while(scrollResp.getHits().getHits().length != 0); // Zero hits mark the end of the scroll and the while loop.

https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-search-scrolling.html


Спасибо Марк, это именно то, что я искал! В моем случае (ELK 6.2.1, python 3) аргумент search_type был недопустим, и document_type больше не нужен, так как ELK 6.0
— Кристоф Шранц

Идеальное решение! Спасибо. Я использовал, elasticsearch_dsl==5.4.0и это работает без search_type = 'scan',.
— Усман Макбул

ES 6.3. В этом примере происходит сбой моего сервиса Elasticsearch при попытке прокрутки документов со size=10000скоростью 110 тыс. С , где-то между 5-7 итерациями. с status=127, main ERROR Null object returned for RollingFile in Appenders, main ERROR Unable to locate appender "rolling" for logger config "root"Нет входит в/var/log/elasticsearch/elasticsearch.log
— Стелиос

scanНапомним, что клиенты python реализуют помощников, которые выполняют прокрутку под капотом (начиная с версии 5.xx по крайней мере)
— MCMZL

search_type = 'scan'устарел. Подобный код будет работать без этого, хотя есть некоторые интересные отличия, которые хорошо скрыты в старой документации. astic.co/guide/en/elasticsearch/reference/1.4/… В частности, при переходе без использования search_type = scan этот первый запрос 'search' будет сопровождаться первой партией результатов для обработки.
— Гарри Вуд

12

Elasticsearch станет значительно медленнее, если вы просто добавите в качестве размера какое-то большое число, и один из способов получения всех документов - использовать идентификаторы сканирования и прокрутки.

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html

В Elasticsearch v7.2 вы делаете это так:

POST /foo/_search?scroll=1m
{
    "size": 100,
    "query": {
        "match_all": {}
    }
}

Результаты этого будут содержать _scroll_id, который вы должны запросить, чтобы получить следующие 100 фрагментов.

POST /_search/scroll 
{
    "scroll" : "1m", 
    "scroll_id" : "<YOUR SCROLL ID>" 
}

1
Этот ответ требует больше обновлений. search_type=scanсейчас устарела. Таким образом, вы должны удалить это, но затем поведение немного изменилось. Первая партия данных возвращается с начального поискового вызова. Ссылка, которую вы предоставляете, показывает правильный способ сделать это.
— Гарри Вуд

1
Мой комментарий был на самом деле, чтобы отметить, что вы не можете просто добавить любое число в качестве размера, так как это будет намного медленнее. Поэтому я удалил пример кода, и люди могут перейти по ссылке, чтобы получить правильный код.
— WoodyDRN

1
@WoodyDRN Лучше иметь код в своем ответе (даже если он устареет), чтобы он оставался доступным после смерти ссылки.
— Trisped

11

используйте server:9200/_statsтакже для получения статистики обо всех ваших псевдонимах, таких как размер и количество элементов на псевдоним, это очень полезно и предоставляет полезную информацию


2
Но, насколько я помню, ES позволяет получать только 16000 данных за запрос. Таким образом, если данные выше 16000, этого решения недостаточно.
— Амина Нураини

10

Если вы хотите получить много тысяч записей, тогда ... несколько человек дали правильный ответ с помощью 'scroll' (Примечание: некоторые люди также предложили использовать 'search_type = scan'. Это устарело, а в v5.0 удалено). Тебе это не нужно)

Начните с запроса 'search', но указав параметр 'scroll' (здесь я использую время ожидания в 1 минуту):

curl -XGET 'http://ip1:9200/myindex/_search?scroll=1m' -d '
{
    "query": {
            "match_all" : {}
    }
}
'

Это включает в себя вашу первую «партию» хитов. Но мы не закончили здесь. Вывод вышеуказанной команды curl будет выглядеть примерно так:

{ "_Scroll_id": "c2Nhbjs1OzUyNjE6NU4tU3BrWi1UWkNIWVNBZW43bXV3Zzs1Mzc3OkhUQ0g3VGllU2FhemJVNlM5d2t0alE7NTI2Mjo1Ti1TcGtaLVRaQ0hZU0FlbjdtdXdnOzUzNzg6SFRDSDdUaWVTYWF6YlU2Uzl3a3RqUTs1MjYzOjVOLVNwa1otVFpDSFlTQWVuN211d2c7MTt0b3RhbF9oaXRzOjIyNjAxMzU3Ow ==", "взял": 109, "timed_out" ложь "_ Осколки": { "всего": 5, "успешно": 5, "не": 0}, "хиты" : { "всего": 22601357, "max_score": 0.0, "хиты": []}}

Важно иметь под рукой _scroll_id, так как далее вы должны выполнить следующую команду:

    curl -XGET  'localhost:9200/_search/scroll'  -d'
    {
        "scroll" : "1m", 
        "scroll_id" : "c2Nhbjs2OzM0NDg1ODpzRlBLc0FXNlNyNm5JWUc1" 
    }
    '

Тем не менее, передача scroll_id - это не то, что нужно делать вручную. Лучше всего написать код для этого. например, в Java:

    private TransportClient client = null;
    private Settings settings = ImmutableSettings.settingsBuilder()
                  .put(CLUSTER_NAME,"cluster-test").build();
    private SearchResponse scrollResp  = null;

    this.client = new TransportClient(settings);
    this.client.addTransportAddress(new InetSocketTransportAddress("ip", port));

    QueryBuilder queryBuilder = QueryBuilders.matchAllQuery();
    scrollResp = client.prepareSearch(index).setSearchType(SearchType.SCAN)
                 .setScroll(new TimeValue(60000))                            
                 .setQuery(queryBuilder)
                 .setSize(100).execute().actionGet();

    scrollResp = client.prepareSearchScroll(scrollResp.getScrollId())
                .setScroll(new TimeValue(timeVal))
                .execute()
                .actionGet();

Теперь LOOP для последней команды использует SearchResponse для извлечения данных.


6

Просто! Вы можете использовать sizeи fromпараметр!

http://localhost:9200/[your index name]/_search?size=1000&from=0

затем вы меняете fromпостепенно, пока не получите все данные.


4
никогда не используйте этот метод, если данные содержат много документов ... Каждый раз, когда вы переходите на «следующую страницу», Elastic будет все медленнее и медленнее! Вместо этого используйте SearchAfter
— Joshlo

3
Кроме того, это решение не будет работать, если общий размер данных будет превышать 10 000. Параметр size = 1000 & from = 10001 не будет работать.
— iclman

2
Действительно не удается. Параметры from+ sizeне могут быть больше, чем значение индекса index.max_result_window, которое по умолчанию
— равно

1
Если данные содержат много тысяч документов, правильный ответ - использовать запрос «прокрутка».
— Гарри Вуд

С fromи size-подходом вы столкнетесь с проблемой Deep PAGINATION. Используйте API прокрутки, чтобы создать дамп всех документов.
— Даниэль Шнайтер

5

Лучший способ отрегулировать размер - использовать размер = число перед URL

Curl -XGET "http://localhost:9200/logstash-*/_search?size=50&pretty"

Примечание. Максимальное значение, которое можно определить в этом размере, составляет 10000. Для любого значения, превышающего десять тысяч, ожидается, что вы будете использовать функцию прокрутки, которая сведет к минимуму любые шансы влияния на производительность.


С какой версии появляется максимальный размер?
— WoodyDRN

Это может быть "лучшим" способом до определенного момента, но немного странным на самом деле. Если у вас много тысяч записей, то лучшим способом является запрос «прокрутки».
— Гарри Вуд

С подходом from и size вы столкнетесь с проблемой Deep Pagination. Используйте API прокрутки, чтобы создать дамп всех документов.
— Даниэль Шнайтер

5

Вы можете использовать _countAPI, чтобы получить значение для sizeпараметра:

http://localhost:9200/foo/_count?q=<your query>

Возвращает {count:X, ...}. Извлеките значение 'X', а затем выполните фактический запрос:

http://localhost:9200/foo/_search?q=<your query>&size=X

1
При установке размера X таким образом, может возникнуть неожиданный сбой параллелизма: подумайте, что произойдет, если запись будет добавлена ​​между выполнением подсчета и установкой размера в следующем запросе ... но также, если у вас есть много тысяч записей для получения тогда это неправильный подход. Вместо этого вы должны использовать запрос «прокрутки».
— Гарри Вуд

4

http: // localhost: 9200 / foo / _search / ? размер = 1000 & красивая = 1

вам нужно будет указать параметр запроса размера по умолчанию 10


С подходом from и size вы столкнетесь с проблемой Deep Pagination. Используйте API прокрутки, чтобы создать дамп всех документов.
— Даниэль Шнайтер

4

Параметр size увеличивает количество отображаемых обращений со значения по умолчанию (10) до 500.

HTTP: // локальный: 9200 / [IndexName] / _search довольно = верно и размер = 500 & Q = *: *

Изменение с шаг за шагом , чтобы получить все данные.

HTTP: // локальный: 9200 / [имя_индекс] / _search размер = 500 & от 0 =

3

Для Elasticsearch 6.x

Запрос: GET /foo/_search?pretty=true

Ответ: В Hits-> total укажите количество документов.

    {
      "took": 1,
      "timed_out": false,
      "_shards": {
        "total": 5,
        "successful": 5,
        "skipped": 0,
        "failed": 0
      },
      "hits": {
        "total": 1001,
        "max_score": 1,
        "hits": [
          {

3

Если это небольшой набор данных (например, 1K записей) , вы можете просто указать size:

curl localhost:9200/foo_index/_search?size=1000

Матч всех запросов не требуется, так как это подразумевается.

Если у вас есть набор данных среднего размера, например, 1M записей , у вас может не хватить памяти для его загрузки, поэтому вам нужна прокрутка .

Свиток похож на курсор в БД. В Elasticsearch он запоминает, где вы остановились, и сохраняет то же представление индекса (то есть предотвращает уход поисковика с обновлением , предотвращает слияние сегментов ).

По API, вы должны добавить параметр прокрутки к первому запросу:

curl 'localhost:9200/foo_index/_search?size=100&scroll=1m&pretty'

Вы вернетесь на первую страницу и прокрутите ID:

{
  "_scroll_id" : "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAADEWbmJlSmxjb2hSU0tMZk12aEx2c0EzUQ==",
  "took" : 0,
...

Помните, что и идентификатор прокрутки, который вы получаете, и время ожидания действительны для следующей страницы . Распространенной ошибкой здесь является указание очень большого тайм-аута (значения scroll), которое будет охватывать обработку всего набора данных (например, 1М записей) вместо одной страницы (например, 100 записей).

Чтобы перейти на следующую страницу, введите последний идентификатор прокрутки и время ожидания, которое должно длиться до получения следующей страницы:

curl -XPOST -H 'Content-Type: application/json' 'localhost:9200/_search/scroll' -d '{
  "scroll": "1m",
  "scroll_id": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAADAWbmJlSmxjb2hSU0tMZk12aEx2c0EzUQ=="
}'

Если у вас есть много для экспорта (например, документы 1B) , вы хотите распараллелить. Это можно сделать с помощью нарезанного свитка . Скажем, вы хотите экспортировать в 10 потоков. Первый поток выдаст такой запрос:

curl -XPOST -H 'Content-Type: application/json' 'localhost:9200/test/_search?scroll=1m&size=100' -d '{
  "slice": {
    "id": 0, 
    "max": 10 
  }
}'

Вы получаете первую страницу и идентификатор прокрутки, точно так же, как обычный запрос прокрутки. Вы будете использовать его точно так же, как обычный свиток, за исключением того, что вы получите 1/10 данных.

Другие темы будут делать то же самое, за исключением того, idчто будет 1, 2, 3 ...



2

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

Добавьте размер с запросом, чтобы получить желаемое количество записей.

http: // {host}: 9200 / {index_name} / _search? pretty = true & size = (количество записей)

Примечание. Максимальный размер страницы не может быть больше, чем значение индекса index.max_result_window, которое по умолчанию равно 10 000.



2

Простое решение с использованием пакета pythonasticsearch-dsl :

from elasticsearch_dsl import Search
from elasticsearch_dsl import connections

connections.create_connection(hosts=['localhost'])

s = Search(index="foo")
response = s.scan()

count = 0
for hit in response:
    # print(hit.to_dict())  # be careful, it will printout every hit in your index
    count += 1

print(count)

Смотрите также https://elasticsearch-dsl.readthedocs.io/en/latest/api.html#elasticsearch_dsl.Search.scan .


1

Максимальный результат, который будет возвращаться с помощьюasticSearch, составляет 10000 при условии размера

curl -XGET 'localhost:9200/index/type/_search?scroll=1m' -d '
{
   "size":10000,
   "query" : {
   "match_all" : {}
    }
}'

После этого вам нужно использовать Scroll API для получения результата, получить значение _scroll_id и поместить это значение в scroll_id.

curl -XGET  'localhost:9200/_search/scroll'  -d'
{
   "scroll" : "1m", 
   "scroll_id" : "" 
}'

API прокрутки должен использоваться с самого начала с самого первого запроса.
— Даниэль Шнайтер

1

Официальная документация дает ответ на этот вопрос! Вы можете найти это здесь .

{
  "query": { "match_all": {} },
  "size": 1
}

Вы просто заменяете size (1) на количество результатов, которое хотите увидеть!


Автор вопроса спрашивал «все» результаты, а не заранее определенное количество результатов. Хотя полезно разместить ссылку на документы, в документах не описывается, как этого добиться, и ваш ответ тоже не описывается.
— Maarten00

С подходом from и size вы столкнетесь с проблемой Deep Pagination. Используйте API прокрутки, чтобы создать дамп всех документов.
— Даниэль Шнайтер

0

Чтобы вернуть все записи из всех индексов, вы можете сделать:

curl -XGET http://35.195.120.21:9200/_all/_search?size=50&pretty

Вывод:

  "took" : 866,
  "timed_out" : false,
  "_shards" : {
    "total" : 25,
    "successful" : 25,
    "failed" : 0
  },
  "hits" : {
    "total" : 512034694,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "grafana-dash",
      "_type" : "dashboard",
      "_id" : "test",
      "_score" : 1.0,
       ...

0
curl -XGET '{{IP/localhost}}:9200/{{Index name}}/{{type}}/_search?scroll=10m&pretty' -d '{
"query": {
"filtered": {
"query": {
"match_all": {}
}}'

Хотя этот фрагмент кода может решить вопрос, в том числе объяснение действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин, по которым вы предлагаете код.
— Стамос

0

Никто, кроме @Akira Sendoh не ответил, как на самом деле получить ВСЕ документы. Но даже это решение приводит к сбою моего сервиса ES 6.3 без логов. Единственное, что сработало для меня при использовании низкоуровневой elasticsearch-pyбиблиотеки, - это помощник по сканированию , использующий scroll()API:

from elasticsearch.helpers import scan

doc_generator = scan(
    es_obj,
    query={"query": {"match_all": {}}},
    index="my-index",
)

# use the generator to iterate, dont try to make a list or you will get out of RAM
for doc in doc_generator:
    # use it somehow

Тем не менее, более чистый путь в настоящее время, кажется, заключается в использовании elasticsearch-dslбиблиотеки, которая предлагает более абстрактные, более чистые вызовы, например: http://elasticsearch-dsl.readthedocs.io/en/latest/search_dsl.html#hits


0

Если до сих пор кто-то ищет все данные, которые будут получены от Elasticsearch, как я, для некоторых случаев, вот что я сделал. Более того, все данные означают все индексы и все типы документов. Я использую Elasticsearch 6.3

curl -X GET "localhost:9200/_search?pretty=true" -H 'Content-Type: application/json' -d'
{
    "query": {
        "match_all": {}
    }
}
'

Elasticsearch ссылка


0

это запрос, чтобы выполнить то, что вы хотите (я предлагаю использовать Kibana, так как это помогает лучше понимать запросы)

GET my_index_name/my_type_name/_search
{
   "query":{
      "match_all":{}
   },
   size : 20,
   from : 3
}

чтобы получить все записи, вы должны использовать запрос "match_all".

Размер - это количество записей, которые вы хотите получить (ограничение). по умолчанию ES вернет только 10 записей

от как пропустить, пропустить первые 3 записи.

Если вы хотите извлечь все записи, просто используйте значение из поля «итоги» из результата, как только вы нажмете на этот запрос из Kibana, и используйте его с «размером».


Ограничением этого запроса является то, что size + from должен быть меньше или равен «index.max_result_window». Для большого количества документов (по умолчанию 10000+) этот запрос не применим.
— KarelHusa

0

Использование Elasticsearch 7.5.1

http://${HOST}:9200/${INDEX}/_search?pretty=true&q=*:*&scroll=10m&size=5000

в случае, если вы также можете указать размер вашего массива с помощью & size = $ {число}

если вы не знаете свой индекс

http://${HOST}:9200/_cat/indices?v

0

Используя консоль kibana и my_index в качестве индекса для поиска, можно внести следующее. Попросив индекс вернуть только 4 поля индекса, вы также можете добавить размер, чтобы указать, сколько документов вы хотите вернуть по индексу. Начиная с ES 7.6 вы должны использовать _source, а не фильтровать, он будет реагировать быстрее.

GET /address/_search
 {
   "_source": ["streetaddress","city","state","postcode"],
   "size": 100,
   "query":{
   "match_all":{ }
    }   
 }

-5

Вы можете использовать размер = 0, это вернет вам все документы пример

curl -XGET 'localhost:9200/index/type/_search' -d '
{
   size:0,
   "query" : {
   "match_all" : {}
    }
}'

1
Это вернет накопленную информацию, но не сами попадания
— user732456
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.