Elastic Search — Count API показывает неверное общее количество документов для индекса

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

GET /_cat/indices/zipkin-span-2020-07-30?v

health status index                  uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   zipkin-span-2020-07-30 STcY29kkT3W7Y0XybbfVTQ   1   1     264996            0     88.9mb         88.9mb

Он показывает, что количество документов составляет 264996, тогда как он показывает очень мало записей (МАКС. 20 записей), когда я нажимаю на приведенный ниже запрос.

GET /zipkin-span-2020-07-30/_search

{"took":774,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},
"hits":{"total":{"value":10000,"relation":"gte"},"max_score":1.0,"hits":[{.... records.....}]}}

Примечание. Я также пытался использовать API-интерфейс прокрутки, но все равно показывал тот же результат. Вопрос -

  1. Связана ли эта проблема с дубликатами записей?
  2. Учитывает ли этот подсчет также записи реплик?

person Morez    schedule 30.07.2020    source источник
comment
"hits":{"total":{"value":10000,"relation":"gte"} говорит, что у вас более 10 000 документов, что подтверждает общее количество, которое _cat сообщает о 264 996. 10 000 — это максимальное количество обращений по соображениям производительности. Elastic не волнует, идентичны документы или нет, они все равно являются отдельными документами.   -  person Nate    schedule 31.07.2020
comment
@Morez это было давно. У вас была возможность просмотреть мой ответ, с нетерпением жду отзывов от вас :) И если это помогло вам решить вашу проблему, пожалуйста, не забудьте проголосовать и принять мой ответ :)   -  person ESCoder    schedule 24.09.2020


Ответы (2)


Ответ @Bhavya, комментарий @Nate прекрасны.

Добавлю еще немного.

_cat/indices - не использовать для проверки счетчиков. описание документа< /а>

В нем не указано, сколько имеется документов ES, но указано, сколько имеется документов Lucene. Здесь разница в том, что вложенный документ рассматривается как один Люсен док. Если один документ ES содержит 5 вложенных документов, то _indices API сообщит вам, что у вас есть 5 документов.

Чтобы получить точное количество документов Elasticsearch, используйте cat count или count API .

person Gibbs    schedule 31.07.2020
comment
Я также пытался использовать count api, но он показывает то же количество, что и для /_cat/indices. - person Morez; 01.08.2020
comment
Если вы хотите увидеть все записи, которые у вас есть, вы устанавливаете параметр size в поисковом запросе. Это ваша проблема? - person Gibbs; 01.08.2020

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

Обратитесь к этому официальная документация, чтобы узнать больше об этом

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

person ESCoder    schedule 31.07.2020