Подсчет количества документов с использованием Elasticsearch
Если вы хотите подсчитать количество документов в индексе (Elasticsearch), то есть (по крайней мере?) две возможности:
Мои вопросы:
-
В чем разница между различными подходами? Который из
я должен предпочесть?
-
Я поднимаю этот вопрос, потому что испытываю разные результаты
в зависимости от выбранного метода. Я сейчас в процессе отладки
проблема, и этот вопрос возник.
Ответы
Ответ 1
Вероятно, _count
немного быстрее, поскольку ему не нужно выполнять полный запрос с ранжированием и извлечением результата и просто вернуть размер.
Было бы интересно узнать немного больше о том, как вам удастся получить разные результаты. Для этого мне нужна дополнительная информация, например, какие точные запросы вы отправляете, и если индексирование происходит в индексе.
Но предположим, что вы выполните следующие
- индексировать некоторые документы
- обновить индекс
_search
и _count
(с совпадением со всем запросом) должны возвращать то же самое. Если нет, это было бы очень странно.
Ответ 2
Два запроса дают тот же результат, но:
- подсчет потребляет меньше ресурсов/пропускной способности, потому что не требует выбор документов, подсчета очков и других внутренних оптимизаций. Установите размер поиска равным 0, может быть очень похожим.
Если вы хотите подсчитать всю запись в индексе, вы также можете выполнить условия агрегации в поле "_type".
Результаты должны быть одинаковыми. Перед сопоставлением результатов обязательно запустите обновление индекса.
Ответ 3
curl http://localhost:9200/_cat/indices?v
предоставляет вам счет и другую информацию в табличном формате
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open logstash-2019.10.09-000001 IS7HBUgRRzO7Rn1puBFUIQ 1 1 0 0 283b 283b
green open .kibana_task_manager_1 e4zZcF9wSQGFHB_lzTszrg 1 0 2 0 12.5kb 12.5kb
yellow open metricbeat-7.4.0-2019.10.09-000001 h_CWzZHcRsakxgyC36-HTg 1 1 6118 0 2.2mb 2.2mb
green open .apm-agent-configuration J6wkUr2CQAC5kF8-eX30jw 1 0 0 0 283b 283b
green open .kibana_2 W2ZETPygS8a83-Xcd6t44Q 1 0 1836 23 1.1mb 1.1mb
green open .kibana_1 IrBlKqO0Swa6_HnVRYEwkQ 1 0 8 0 208.8kb 208.8kb
yellow open filebeat-7.4.0-2019.10.09-000001 xSd2JdwVR1C9Ahz2SQV9NA 1 1 0 0 283b 283b
green open .tasks 0ZzzrOq0RguMhyIbYH_JKw 1 0 1 0 6.3kb 6.3kb