API подсчёта
Получает количество совпадений для запроса.
GET /my-index-000001/_count?q=user:kimchy
Запрос, отправляемый в теле, должен быть вложен в ключ query, как и в API поиска.
Запрос
GET /<target>/_count
Предварительные условия
- Если включены средства безопасности Elasticsearch, у вас должны быть права
readна целевой поток данных, индекс или псевдоним.
Описание
API подсчёта позволяет выполнить запрос и получить количество совпадений по этому запросу. Запрос можно указать, используя простую строку запроса в качестве параметра или используя Query DSL в теле запроса.
API подсчёта поддерживает синтаксис для нескольких целей. Вы можете выполнить один запрос подсчёта по нескольким потокам данных и индексам.
Операция транслируется по всем фрагментам. Для каждой группы идентификаторов фрагментов выбирается репликация и выполняется на ней. Это означает, что реплики повышают масштабируемость подсчёта.
Параметры пути
-
<target> - (Необязательно, строка) Список потоков данных, индексов и псевдонимов для поиска, разделённый запятыми. Поддерживаются подстановочные знаки (
*). Чтобы выполнить поиск по всем потокам данных и индексам, опустите этот параметр или используйте*или_all.
Параметры запроса
-
allow_no_indices -
(Необязательно, булево) Если
false, запрос возвращает ошибку, если любое выражение с подстановкой, индексный псевдоним или_allзначение указывают только отсутствующие или закрытые индексы. Это поведение применяется даже если запрос нацелен на другие открытые индексы. Например, запрос, нацеленный наfoo*,bar*, возвращает ошибку, если индекс начинается сfoo, но ни один индекс не начинается сbar.По умолчанию
true. -
analyzer -
(Необязательно, строка) Анализатор для использования в строке запроса.
Этот параметр можно использовать только при указании параметра строки запроса
q. -
analyze_wildcard -
(Необязательно, булево) Если
true, запросы с подстановкой и префиксом анализируются. По умолчаниюfalse.Этот параметр можно использовать только при указании параметра строки запроса
q. -
default_operator -
(Необязательно, строка) Оператор по умолчанию для запроса по строке: AND или OR. По умолчанию
OR.Этот параметр можно использовать только при указании параметра строки запроса
q. -
df -
(Необязательно, строка) Поле, используемое по умолчанию, когда в строке запроса нет префикса поля.
Этот параметр можно использовать только при указании параметра строки запроса
q. -
expand_wildcards -
(Необязательно, строка) Тип индекса, с которым могут совпадать шаблоны с подстановкой. Если запрос может нацеливаться на потоки данных, этот аргумент определяет, соответствуют ли выражения с подстановкой скрытым потокам данных. Поддерживаются значения, разделённые запятыми, например,
open,hidden. Допустимые значения:-
all - Совпадение с любым потоком данных или индексом, включая скрытые.
-
open - Совпадение с открытыми, нескрытыми индексами. Также соответствует любому нескрытому потоку данных.
-
closed - Совпадение с закрытыми, нескрытыми индексами. Также соответствует любому нескрытому потоку данных. Потоки данных не могут быть закрыты.
-
hidden - Совпадение со скрытыми потоками данных и скрытыми индексами. Должен быть объединён с
open,closedили обоими. -
none - Шаблоны с подстановкой не принимаются.
По умолчанию
open. -
-
ignore_throttled - (Необязательно, булево) Если
true, конкретные, расширенные или псевдонимизированные индексы игнорируются при замораживании. По умолчаниюtrue. -
ignore_unavailable - (Необязательно, булево) Если
false, запрос возвращает ошибку, если он нацелен на отсутствующий или закрытый индекс. По умолчаниюfalse. -
lenient -
(Необязательно, булево) Если
true, сбои в запросе по строке, основанные на формате (например, предоставление текста числовому полю), игнорируются. По умолчаниюfalse.Этот параметр можно использовать только при указании параметра строки запроса
q. -
min_score - (Необязательно, float) Устанавливает минимальное значение
_score, которое должны иметь документы, чтобы быть включёнными в результат. -
preference - (Необязательно, строка) Указывает узел или фрагмент, на котором должна выполняться операция. По умолчанию случайный.
-
q - (Необязательно, строка) Запрос в синтаксисе строки запроса Lucene.
-
routing - (Необязательно, строка) Пользовательское значение, используемое для маршрутизации операций на определённый фрагмент.
-
terminate_after -
(Необязательно, целое число) Максимальное количество документов для сбора на каждом фрагменте. Если запрос достигнет этого предела, Elasticsearch прерывает запрос раньше. Elasticsearch собирает документы до сортировки.
Используйте с осторожностью. Elasticsearch применяет этот параметр к каждому фрагменту, обрабатывающему запрос. Когда это возможно, позвольте Elasticsearch выполнять раннее завершение автоматически. Избегайте указания этого параметра для запросов, которые нацелены на потоки данных с поддерживающими индексами через несколько уровней данных.
Тело запроса
-
query - (Необязательно, объект запроса) Определяет определение поиска, используя Query DSL.
Примеры
PUT /my-index-000001/_doc/1?refresh
{
"user.id": "kimchy"
}
GET /my-index-000001/_count?q=user:kimchy
GET /my-index-000001/_count
{
"query" : {
"term" : { "user.id" : "kimchy" }
}
} Оба примера делают одно и то же: подсчитывают количество документов в my-index-000001 с user.id kimchy. API возвращает следующий ответ:
{
"count": 1,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
}
} Запрос необязателен, и при его отсутствии он будет использовать match_all для подсчёта всех документов.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/search-count.html