Запрос Elasticsearch для возврата всех записей - PullRequest
436 голосов
/ 12 января 2012

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

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

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

Ответы [ 26 ]

5 голосов
/ 21 апреля 2017

http://localhost:9200/foo/_search/?size=1000&pretty=1

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

5 голосов
/ 17 июня 2017

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

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

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

http://localhost:9200/foo/_search?q=<your query>&size=X
3 голосов
/ 25 января 2018

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

http://localhost:9200/[indexName]/_search?pretty=true&size=500&q=*:*

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

http://localhost:9200/[indexName]/_search?size=500&from=0
3 голосов
/ 24 апреля 2018

Для 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": [
          {
2 голосов
/ 25 февраля 2019

Из Kibana DevTools его:

GET my_index_name/_search
{
  "query": {
    "match_all": {}
  }
}
2 голосов
/ 11 декабря 2018

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

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

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

2 голосов
/ 29 сентября 2018

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

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

http://{host}:9200/{index_name}/_search?pretty=true&size=(number записей)

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

2 голосов
/ 22 мая 2018
curl -X GET 'localhost:9200/foo/_search?q=*&pretty' 
1 голос
/ 24 июля 2018

Максимальный результат, который будет возвращаться с помощью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" : "" 
}'
0 голосов
/ 01 июня 2019

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

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

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

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

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

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

...