API подсчёта
Получает количество совпадений для запроса поиска.
resp = client.count(
index="my-index-000001",
q="user:kimchy",
)
print(resp) response = client.count( index: 'my-index-000001', q: 'user:kimchy' ) puts response
const response = await client.count({
index: "my-index-000001",
q: "user:kimchy",
});
console.log(response); GET /my-index-000001/_count?q=user:kimchy
Запрос
GET /<target>/_count
Предварительные условия
- Если включены функции безопасности Elasticsearch, у вас должны быть
readправа доступа к индексу для целевого потока данных, индекса или псевдонима.
Описание
API подсчёта позволяет выполнить запрос и получить количество совпадений для этого запроса. Вы можете указать запрос, используя:
Использование обоих методов приводит к ошибке.
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.[7.16.0] Устарело в 7.16.0.
-
ignore_unavailable - (Необязательно, Булево) Если
false, запрос возвращает ошибку, если он направлен на отсутствующий или закрытый индекс. По умолчаниюfalse. -
lenient -
(Необязательно, Булево) Если
true, ошибки запроса, основанные на формате (например, предоставление текста для числового поля) в строке запроса, будут проигнорированы. По умолчаниюfalse.Этот параметр может быть использован только при указании параметра строки запроса
q. -
min_score - (Необязательно, число с плавающей точкой) Устанавливает минимальное значение
_score, которое должны иметь документы, чтобы быть включёнными в результат. -
preference - (Необязательно, строка) Указывает узел или фрагмент, на котором должна быть выполнена операция. По умолчанию случайный.
-
q -
(Необязательно, строка) Запрос в синтаксисе строки запроса Lucene.
Если указан параметр
q, API подсчёта не принимает тело запроса. -
routing - (Необязательно, строка) Пользовательское значение, используемое для маршрутизации операций на определённый фрагмент.
-
terminate_after -
(Необязательно, целое число) Максимальное количество документов, собираемых для каждого фрагмента. Если запрос достигнет этого предела, Elasticsearch прервёт его досрочно. Elasticsearch собирает документы перед сортировкой.
Используйте с осторожностью. Elasticsearch применяет этот параметр к каждому фрагменту, обрабатывающему запрос. Если возможно, позвольте Elasticsearch выполнять прерывание запроса автоматически. Избегайте указания этого параметра для запросов, направленных на потоки данных с поддерживающими индексами в нескольких уровнях данных.
Тело запроса
-
query - (Необязательно, объект запроса) Определяет запрос поиска с помощью Query DSL.
Примеры
resp = client.index(
index="my-index-000001",
id="1",
refresh=True,
document={
"user.id": "kimchy"
},
)
print(resp)
resp1 = client.count(
index="my-index-000001",
q="user:kimchy",
)
print(resp1)
resp2 = client.count(
index="my-index-000001",
query={
"term": {
"user.id": "kimchy"
}
},
)
print(resp2) response = client.index(
index: 'my-index-000001',
id: 1,
refresh: true,
body: {
'user.id' => 'kimchy'
}
)
puts response
response = client.count(
index: 'my-index-000001',
q: 'user:kimchy'
)
puts response
response = client.count(
index: 'my-index-000001',
body: {
query: {
term: {
'user.id' => 'kimchy'
}
}
}
)
puts response const response = await client.index({
index: "my-index-000001",
id: 1,
refresh: "true",
document: {
"user.id": "kimchy",
},
});
console.log(response);
const response1 = await client.count({
index: "my-index-000001",
q: "user:kimchy",
});
console.log(response1);
const response2 = await client.count({
index: "my-index-000001",
query: {
term: {
"user.id": "kimchy",
},
},
});
console.log(response2); 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
}
} Запрос необязателен. Если запрос не указан, API использует 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/8.17/search-count.html