API перечисления терминов
API перечисления терминов позволяет обнаружить термины в индексе, соответствующие частичной строке. Поддерживаемые типы полей: keyword, constant_keyword, flattened, version и ip. Используется для автозаполнения:
resp = client.terms_enum(
index="stackoverflow",
field="tags",
string="kiba",
)
print(resp) response = client.terms_enum(
index: 'stackoverflow',
body: {
field: 'tags',
string: 'kiba'
}
)
puts response const response = await client.termsEnum({
index: "stackoverflow",
field: "tags",
string: "kiba",
});
console.log(response); POST stackoverflow/_terms_enum
{
"field" : "tags",
"string" : "kiba"
} API возвращает следующий ответ:
{
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"terms": [
"kibana"
],
"complete" : true
} Если complete флаг установлен в false, возвращаемый terms набор может быть неполным и должен рассматриваться как приблизительный. Это может произойти по нескольким причинам, таким как истечение времени ожидания запроса или ошибка узла.
API перечисления терминов может возвращать термины из удалённых документов. Удаленные документы первоначально только помечаются как удаленные. Только после слияния их сегментов с помощью слияния документы фактически удаляются. До этого API перечисления терминов будет возвращать термины из этих документов.
Запрос
GET /<target>/_terms_enum
Описание
API terms_enum можно использовать для поиска терминов в индексе, начинающихся с указанной строки. Он предназначен для быстрого поиска, используемого в сценариях автозаполнения.
Параметры пути
-
<target> - (Обязательно, строка) Список данных, потоков, индексов и алиасов для поиска, разделенных запятыми. Поддерживаются шаблоны (
*). Для поиска всех потоков данных или индексов опустите этот параметр или используйте*или_all.
Тело запроса
-
field - (Обязательно, строка) Какое поле сопоставлять
-
string - (Необязательно, строка) Строка для сопоставления в начале индексированных терминов. Если не указано, все термины в поле рассматриваются.
Строка префикса не может быть больше максимального значения поля keyword, которое ограничено пределом длины байтов термина Lucene в 32766
-
size - (Необязательно, целое число) Количество совпадающих терминов для возврата. По умолчанию 10
-
timeout - (Необязательно, значение времени) Максимальное время, затрачиваемое на сбор результатов. По умолчанию «1s» (одна секунда). Если время ожидания превышено,
completeфлаг в ответе устанавливается в значение false, и результаты могут быть частичными или пустыми.
-
case_insensitive - (Необязательно, булево) При значении true, предоставленная строка поиска сопоставляется с терминами индекса без учета регистра. По умолчанию false.
-
index_filter - (Необязательно, объект запроса) Позволяет отфильтровать фрагмент индекса, если предоставленный запрос переписывается в
match_none.
-
search_after - (Необязательно, строка) Строка, после которой в индексе должны быть возвращены термины. Позволяет реализовать пагинацию, если последний результат одного запроса передается как параметр
search_afterпоследующего запроса.
© 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-terms-enum.html