Spec-Zone.ru › Elasticsearch 8
›Руководство по Elasticsearch [8.17] ›REST API ›API поиска

API поиска

Новая справка по API

Для получения самых последних данных об API обратитесь к API поиска.

Возвращает результаты поиска, которые соответствуют запросу, определённому в запросе.

resp = client.search(
    index="my-index-000001",
)
print(resp)
response = client.search(
  index: 'my-index-000001'
)
puts response
res, err := es.Search(
	es.Search.WithIndex("my-index-000001"),
	es.Search.WithPretty(),
)
fmt.Println(res, err)
const response = await client.search({
  index: "my-index-000001",
});
console.log(response);
GET /my-index-000001/_search

Запрос

GET /<target>/_search

GET /_search

POST /<target>/_search

POST /_search

Предварительные условия

  • Если включены функции безопасности Elasticsearch, у вас должна быть read права доступа к индексу для целевого потока данных, индекса или псевдонима. Для межкластерного поиска см. Настройка прав доступа для межкластерного поиска.

    Для поиска в точке во времени (PIT) для псевдонима, у вас должна быть read права доступа к индексу для потоков данных или индексов псевдонима.

Описание

Позволяет выполнить запрос поиска и получить результаты поиска, соответствующие запросу. Вы можете указать запросы поиска, используя q параметр строки запроса или тело запроса.

Параметры пути

<target>
(Необязательно, строка) Список потоков данных, индексов и псевдонимов для поиска, разделённый запятыми. Поддерживает подстановку символов (*). Для поиска во всех потоках данных и индексах опустите этот параметр или используйте * или _all.

Параметры запроса

Несколько параметров данного API могут быть заданы в параметрах запроса или в теле запроса. Если оба параметра указаны, используется только параметр запроса.

allow_no_indices

(Необязательный, булевый) Если false, запрос возвращает ошибку, если какое-либо выражение с подстановкой, алиас индекса, или значение _all указывают только на отсутствующие или закрытые индексы. Это поведение применяется даже если запрос направлен на другие открытые индексы. Например, запрос, нацеленный на foo*,bar*, возвращает ошибку, если индекс начинается с foo, но ни один индекс не начинается с bar.

По умолчанию true.

allow_partial_search_results

(Необязательный, булевый) Если true, возвращает частичные результаты, если есть временные сбои запросов фрагментов или неисправности фрагментов. Если false, возвращает ошибку без частичных результатов. По умолчанию true.

Чтобы переопределить значение по умолчанию для этого поля, установите кластерное свойство search.default_allow_partial_results в false.

analyzer

(Необязательный, строка) Анализатор для использования в строке запроса.

Этот параметр может быть использован только при указании параметра строки запроса q.

analyze_wildcard

(Необязательный, булевый) Если true, выражения с подстановкой и префиксные запросы анализируются. По умолчанию false.

Этот параметр может быть использован только при указании параметра строки запроса q.

batched_reduce_size
(Необязательный, целое число) Количество результатов фрагментов, которые должны быть уменьшены одновременно на узле координатора. Это значение следует использовать как механизм защиты для уменьшения нагрузки на память на запрос поиска, если потенциальное количество фрагментов в запросе может быть большим. По умолчанию 512.
ccs_minimize_roundtrips
(Необязательный, булевый) Если true, сетевые запросы между узлом координатора и удалёнными кластерами минимизируются при выполнении запросов поиска по нескольким кластерам (CCS). См. Как поиск по нескольким кластерам обрабатывает сетевые задержки. По умолчанию true.
default_operator

(Необязательный, строка) Оператор по умолчанию для запроса строки: ИЛИ или И. По умолчанию OR.

Этот параметр может быть использован только при указании параметра строки запроса q.

df

(Необязательный, строка) Поле, используемое по умолчанию, когда в строке запроса нет префикса поля.

Этот параметр может быть использован только при указании параметра строки запроса q.

docvalue_fields
(Необязательный, строка) Список полей, разделенных запятыми, которые нужно вернуть в качестве представления значений документа каждого попадания. См. Поля значений документа.
expand_wildcards

(Необязательный, строка) Тип индекса, с которым могут совпадать шаблоны с подстановкой. Если запрос может нацеливаться на потоки данных, этот аргумент определяет, будут ли шаблоны с подстановкой соответствовать скрытым потокам данных. Поддерживаются значения, разделенные запятыми, такие как open,hidden. Допустимые значения:

all
Соответствие любому потоку данных или индексу, включая скрытые.
open
Соответствие открытым, нескрытым индексам. Также соответствует любому нескрытому потоку данных.
closed
Соответствие закрытым, нескрытым индексам. Также соответствует любому нескрытому потоку данных. Потоки данных не могут быть закрыты.
hidden
Соответствие скрытым потокам данных и скрытым индексам. Должно быть комбинировано с open, closed или обоими.
none
Шаблоны с подстановкой не принимаются.

По умолчанию open.

explain
(Необязательный, булевый) Если true, возвращает подробную информацию о вычислении оценки в составе попадания. По умолчанию false.
from

(Необязательный, целое число) Начальный смещение документа. Должно быть неотрицательным и по умолчанию равно 0.

По умолчанию нельзя перелистывать более 10 000 попаданий, используя параметры from и size. Чтобы перелистывать больше попаданий, используйте параметр search_after.

ignore_throttled

(Необязательный, булевый) Если true, конкретные, расширенные или алиасированные индексы игнорируются при заморозке. По умолчанию true.

[7.16.0] Устарело в версии 7.16.0.

include_named_queries_score
(Необязательный, булевый) Если true, включает вклад оценки от именованных запросов. Эта функция повторно выполняет каждый именованный запрос на каждом попадании в ответе поиска. Обычно это добавляет небольшую нагрузку на запрос. Однако использование вычислительно дорогостоящих именованных запросов на большом количестве попаданий может добавить значительную нагрузку. По умолчанию false.
ignore_unavailable
(Необязательный, булевый) Если false, запрос возвращает ошибку, если он направлен на отсутствующий или закрытый индекс. По умолчанию false.
lenient

(Необязательный, булевый) Если true, ошибки запроса, основанные на формате (например, предоставление текста численному полю) в строке запроса будут проигнорированы. По умолчанию false.

Этот параметр может быть использован только при указании параметра строки запроса q.

max_concurrent_shard_requests
(Необязательный, целое число) Определяет количество одновременных запросов к фрагментам на узел, которые выполняет этот поиск. Это значение следует использовать для ограничения влияния поиска на кластер, чтобы ограничить количество одновременных запросов к фрагментам. По умолчанию 5.
pre_filter_shard_size

(Необязательный, целое число) Определяет порог, который навязывает предварительный запрос для предварительной фильтрации фрагментов поиска на основе переписывания запроса, если количество фрагментов, на которые распространяется запрос поиска, превышает порог. Этот предварительный запрос может значительно ограничить количество фрагментов, если, например, фрагмент не может сопоставить ни один документ на основе его метода переписывания, то есть если обязательны фильтры дат для соответствия, но границы фрагмента и запрос не пересекаются. Если не указано, фаза предварительной фильтрации выполняется, если выполняется любое из этих условий:

  • Запрос направлен более чем на 128 фрагментов.
  • Запрос направлен на один или несколько только для чтения индексов.
  • Первичная сортировка запроса направлена на индексированное поле.
preference

(Необязательный, строка) Узлы и фрагменты, используемые для поиска. По умолчанию Elasticsearch выбирает подходящие узлы и фрагменты с помощью адаптивной выборки реплик, учитывая осведомленность о распределении фрагментов.

Допустимые значения для preference
_only_local
Выполнить поиск только на фрагментах на локальном узле.
_local
Если возможно, выполнить поиск на фрагментах на локальном узле. Если нет, выбрать фрагменты с использованием стандартного метода.
_only_nodes:<node-id>,<node-id>
Выполнить поиск только на указанных узлах. Если подходящие фрагменты существуют на более чем одном выбранном узле, использовать фрагменты на этих узлах с использованием стандартного метода. Если ни один из указанных узлов недоступен, выбрать фрагменты с любого доступного узла с использованием стандартного метода.
_prefer_nodes:<node-id>,<node-id>
Если возможно, выполнить поиск на указанных узлах. Если нет, выбрать фрагменты с использованием стандартного метода.
_shards:<shard>,<shard>
Выполнить поиск только на указанных фрагментах. Вы можете объединить это значение с другими значениями preference. Однако значение _shards должно стоять первым. Например: _shards:2,3|_local.
<custom-string>
Любая строка, которая не начинается с _. Если состояние кластера и выбранные фрагменты не изменяются, запросы с использованием одного и того же значения <custom-string> будут маршрутизироваться на те же фрагменты в том же порядке.
q

(Необязательно, строка) Запрос в синтаксисе Lucene.

Вы можете использовать параметр q для поиска по параметрам запроса. Поиск по параметрам запроса не поддерживает полный Query DSL Elasticsearch, но удобен для тестирования.

Параметр q переопределяет параметр query в теле запроса. Если оба параметра указаны, документы, соответствующие параметру тела запроса query, не возвращаются.

request_cache
(Необязательно, логическое значение) Если true, кеширование результатов поиска включено для запросов, где size равно 0. См. Кэш запросов фрагментов. По умолчанию используется настройка уровня индекса.
rest_total_hits_as_int
(Необязательно, логическое значение) Указывает, должно ли поле hits.total отображаться как целое число или объект в ответе поиска REST. По умолчанию false.
routing
(Необязательно, строка) Настраиваемое значение, используемое для маршрутизации операций на определенный фрагмент.
scroll

(Необязательно, значение времени) Период хранения контекста поиска для прокрутки. См. Прокрутка результатов поиска.

По умолчанию это значение не может превышать 1d (24 часа). Вы можете изменить этот предел, используя настройку кластера search.max_keep_alive.

search_type

(Необязательно, строка) Способ вычисления распределённых частот терминов для рейтинга релевантности.

Допустимые значения для search_type
query_then_fetch
(По умолчанию) Распределённые частоты терминов вычисляются локально для каждого фрагмента, выполняющего поиск. Рекомендуется для более быстрых поисков с потенциально менее точным рейтингом.
dfs_query_then_fetch
Распределённые частоты терминов вычисляются глобально, используя информацию, собранную со всех фрагментов, выполняющих поиск. Хотя этот вариант повышает точность рейтингов, он добавляет обмен данными с каждым фрагментом, что может привести к более медленным поискам.
seq_no_primary_term
(Необязательно, логическое значение) Если true, возвращает порядковый номер и первичный термин последнего изменения каждого совпадения. См. Оптимистичный контроль одновременности.
size

(Необязательно, целое число) Определяет количество совпадений для возврата. По умолчанию 10.

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

sort
(Необязательно, строка) Список значений вида <поле>:<направление>, разделённых запятыми.
_source

(Необязательно) Указывает, какие поля _source возвращаются для соответствующих документов. Эти поля возвращаются в свойстве hits._source ответа поиска. По умолчанию true. См. фильтрацию _source.

Допустимые значения для _source
true
(Булево) Возвращается весь источник документа.
false
(Булево) Источник документа не возвращается.
<string>
(строка) Список полей источника для возврата, разделённых запятыми. Поддерживаются шаблоны с подстановкой символов (*).
_source_excludes

(Необязательно, строка) Список полей источника для исключения из ответа.

Также вы можете использовать этот параметр для исключения полей из подмножества, указанного в параметре запроса _source_includes.

Если параметр _source равен false, этот параметр игнорируется.

_source_includes

(Необязательно, строка) Список полей источника для включения в ответ.

Если этот параметр указан, возвращаются только эти поля источника. Вы можете исключить поля из этого подмножества, используя параметр запроса _source_excludes.

Если параметр _source равен false, этот параметр игнорируется.

stats
(Необязательно, строка) Специфический tag запроса для ведения журнала и статистических целей.
stored_fields

(Необязательно, строка) Список сохраненных полей, разделённых запятыми, которые должны быть возвращены в составе совпадения. Если поля не указаны, сохраненные поля не включаются в ответ. См. Сохраненные поля.

Если это поле указано, параметр _source по умолчанию равен false. Вы можете передать _source: true, чтобы вернуть и поля источника, и сохранённые поля в ответе поиска.

suggest_field
(Необязательно, строка) Указывает поле для использования в предложениях.
suggest_mode

(Необязательно, строка) Указывает режим предложений. По умолчанию missing. Доступные варианты:

  • always
  • missing
  • popular

Этот параметр может быть использован только при указании параметров запроса suggest_field и suggest_text.

suggest_size

(Необязательно, целое число) Количество предложений для возврата.

Этот параметр может быть использован только при указании параметров запроса suggest_field и suggest_text.

suggest_text

(Необязательно, строка) Текст источника, для которого должны быть возвращены предложения.

Этот параметр может быть использован только при указании параметра запроса suggest_field.

terminate_after

(Необязательно, целое число) Максимальное количество документов для сбора на каждом фрагменте. Если запрос достигает этого предела, Elasticsearch прерывает запрос. Elasticsearch собирает документы до сортировки.

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

По умолчанию 0, что не прерывает выполнение запроса.

timeout
(Необязательно, единицы времени) Указывает период времени ожидания ответа от каждого фрагмента. Если ответ не получен до истечения времени ожидания, запрос завершается ошибкой. По умолчанию без таймаута.
track_scores
(Необязательно, логическое значение) Если true, вычислять и возвращать баллы документов, даже если баллы не используются для сортировки. По умолчанию false.
track_total_hits

(Необязательно, целое число или логическое значение) Количество совпадений, соответствующих запросу, для точного подсчёта. По умолчанию 10000.

Если true, точное количество совпадений возвращается с некоторыми потерями производительности. Если false, ответ не включает общее количество совпадений, соответствующих запросу.

typed_keys
(Необязательно, логическое значение) Если true, имена агрегаций и предложений предваряются соответствующими типами в ответе. По умолчанию false.
version
(Необязательно, логическое значение) Если true, возвращает версию документа как часть совпадения. По умолчанию false.

Тело запроса

docvalue_fields

(Необязательный, массив строк и объектов) Массив шаблонов полей. Запрос возвращает значения для имён полей, соответствующих этим шаблонам, в свойстве hits.fields ответа.

Вы можете указывать элементы в массиве как строку или объект. Смотрите Поля значений документа.

Свойства объектов docvalue_fields
field
(Обязательный, строка) Шаблон подстановки. Запрос возвращает значения документа для имён полей, соответствующих этому шаблону.
format

(Необязательный, строка) Формат, в котором возвращаются значения документа.

Для полей даты вы можете указать формат даты формат даты format. Для числовых полей вы можете указать шаблон DecimalFormat.

Для других типов полей данных этот параметр не поддерживается.

fields

(Необязательный, массив строк и объектов) Массив шаблонов полей. Запрос возвращает значения для имён полей, соответствующих этим шаблонам, в свойстве hits.fields ответа.

Вы можете указывать элементы в массиве как строку или объект. Смотрите опцию fields.

Свойства объектов fields
field
(Обязательный, строка) Поле для возврата. Поддерживаются подстановки (*).
format

(Необязательный, строка) Формат для полей даты и геопространственных полей. Другие типы полей данных не поддерживают этот параметр.

date и date_nanos поля принимают формат даты. geo_point и geo_shape поля принимают:

geojson (по умолчанию)
GeoJSON
wkt
Well Known Text
mvt(<spec>)

Бинарная плитка Mapbox. API возвращает плитку в формате base64. У <spec> формат <zoom>/<x>/<y> с двумя необязательными суффиксами: @<extent> и/или :<buffer>. Например, 2/0/1 или 2/0/1@4096:5.

mvt параметры
<zoom>
(Обязательный, целое число) Уровень масштабирования плитки. Принимает 0-29.
<x>
(Обязательный, целое число) Координата X плитки.
<y>
(Обязательный, целое число) Координата Y плитки.
<extent>
(Необязательный, целое число) Размер стороны плитки в пикселях. Плитки квадратные с равными сторонами. По умолчанию 4096.
<buffer>
(Необязательный, целое число) Размер буфера обрезки вне плитки в пикселях. Это позволяет избежать артефактов контура от геометрий, выходящих за пределы плитки. По умолчанию 5.
stored_fields

(Необязательный, строка) Список сохраненных полей через запятую, которые нужно вернуть как часть совпадения. Если поля не указаны, сохраненные поля не включаются в ответ. Смотрите Сохраненные поля.

Если эта опция указана, параметр _source по умолчанию равен false. Вы можете передать _source: true, чтобы вернуть как исходные поля, так и сохраненные в ответе поиска.

explain
(Необязательный, Булево) Если true, возвращает подробную информацию о вычислении оценки как часть совпадения. По умолчанию false.
from

(Необязательный, целое число) Смещение начального документа. Должно быть неотрицательным и по умолчанию равно 0.

По умолчанию вы не можете получить более 10 000 совпадений с использованием параметров from и size. Чтобы получить больше совпадений, используйте параметр search_after.

indices_boost

(Необязательный, массив объектов) Усиливает _score документов из указанных индексов.

Свойства объектов indices_boost
<index>: <boost-value>

(Обязательный, число с плавающей точкой) <index> — имя индекса или псевдонима индекса. Поддерживаются выражения с подстановкой (*).

<boost-value> — множитель, на который умножаются оценки.

Значение усиления больше 1.0 увеличивает оценку. Значение усиления между 0 и 1.0 уменьшает оценку.

knn

(Необязательно, объект или массив объектов) Определяет запрос kNN для выполнения.

Свойства объекта knn
field
(Обязательно, строка) Название поля вектора для поиска. Должно быть полем dense_vector, с включенной индексацией.
filter
(Необязательно, объект Query DSL) Запрос для фильтрации документов, которые могут соответствовать. Поиск kNN вернёт лучшие k документов, которые также соответствуют этому фильтру. Значение может быть одиночным запросом или списком запросов. Если filter не указан, все документы допускаются к соответствию.
k
(Необязательно, целое число) Количество ближайших соседей, которые нужно вернуть в качестве лучших результатов. Это значение должно быть меньше или равно num_candidates. По умолчанию значение size.
num_candidates
(Необязательно, целое число) Количество кандидатов ближайших соседей для рассмотрения на фрагмент. Должно быть больше k, или size, если k опущено, и не может превышать 10 000. Elasticsearch собирает результаты num_candidates с каждого фрагмента, затем объединяет их, чтобы найти лучшие k результаты. Увеличение num_candidates, как правило, улучшает точность конечных результатов k. По умолчанию Math.min(1.5 * k, 10_000).
query_vector
(Необязательно, массив чисел с плавающей запятой) Вектор запроса. Должен иметь то же количество измерений, что и поле вектора, по которому вы осуществляете поиск. Должен быть либо массивом чисел с плавающей запятой, либо шестнадцатеричным закодированным вектором байтов.
query_vector_builder
(Необязательно, объект) Конфигурационный объект, указывающий, как построить query_vector перед выполнением запроса. Вы должны предоставить query_vector_builder или query_vector, но не оба. Обратитесь к Выполнение семантического поиска для получения дополнительной информации.
similarity

(Необязательно, число с плавающей запятой) Минимальная степень схожести, необходимая для того, чтобы документ считался совпадением. Значение схожести, вычисленное, относится к исходному similarity используемому. Не к рейтингу документа. Совпадающие документы затем оцениваются в соответствии с similarity, и указанный boost применяется.

Параметр similarity — это непосредственное вычисление схожести векторов.

  • l2_norm: также известный как евклидовый, будет включать документы, где вектор находится внутри dims-мерной гиперсферы радиусом similarity с центром в точке query_vector.
  • cosine, dot_product и max_inner_product: Возвращаются только векторы, где косинусная схожесть или скалярное произведение не меньше указанного similarity.

Подробнее здесь: Поиск kNN с ожидаемой схожестью

min_score
(Необязательно, число с плавающей запятой) Минимальный _score для сопоставления документов. Документы с более низким _score не включаются в результаты поиска.
pit

(Необязательно, объект) Ограничивает поиск до момента времени (PIT). Если вы предоставляете pit, вы не можете указать <target> в пути запроса.

Свойства объекта pit
id
(Обязательно*, строка) Идентификатор PIT для поиска. Если вы предоставляете объект pit, этот параметр обязателен.
keep_alive
(Необязательно, значение времени) Период времени, используемый для продления срока действия PIT.
query
(Необязательно, объект запроса) Определяет определение поиска, используя Query DSL.
retriever
[preview] Эта функциональность находится на стадии технического предварительного просмотра и может быть изменена или удалена в будущих выпусках. Elastic будет работать над исправлением любых проблем, но функции технического предварительного просмотра не подпадают под SLA поддержки официальных функций GA. (Необязательно, объект retriever) Определяет высшего уровня ретривер, чтобы указать желаемый набор лучших документов вместо стандартного запроса или поиска knn.
runtime_mappings

(Необязательно, объект объектов) Определяет одно или несколько полей runtime в запросе поиска. Эти поля имеют приоритет над сопоставленными полями с тем же именем.

Свойства объектов runtime_mappings
<field-name>

(Обязательно, объект) Настройки для поля runtime. Ключ — имя поля.

Свойства <field-name>
type

(Обязательно, строка) Тип поля, который может быть любым из следующих:

  • boolean
  • composite
  • date
  • double
  • geo_point
  • ip
  • keyword
  • long
  • lookup
script

(Необязательно, строка) Painless скрипт, выполняемый во время запроса. Скрипт имеет доступ ко всему контексту документа, включая исходный _source и любые сопоставленные поля, а также их значения.

Этот скрипт должен включать emit для возврата вычисленных значений. Например:

"script": "emit(doc['@timestamp'].value.dayOfWeekEnum.toString())"
seq_no_primary_term
(Необязательно, булево) Если true, возвращает номер последовательности и первичный термин последнего изменения каждого совпадения. См. Оптимистический контроль конкуретности.
size

(Необязательно, целое число) Количество совпадений, которые нужно вернуть. Должно быть неотрицательным и по умолчанию равно 10.

По умолчанию вы не можете просматривать более 10 000 совпадений, используя параметры from и size. Чтобы просматривать больше совпадений, используйте параметр search_after.

_source

(Необязательно) Указывает, какие исходные поля возвращаются для совпадающих документов. Эти поля возвращаются в свойстве hits._source ответа поиска. По умолчанию true. См. фильтрацию исходных данных.

Допустимые значения для _source
true
(Булево) Возвращается весь исходный документ.
false
(Булево) Исходный документ не возвращается.
<wildcard_pattern>
(строка или массив строк) Шаблон с подстановкой (*) или массив шаблонов, содержащих исходные поля для возврата.
<object>

(объект) Объект, содержащий список исходных полей для включения или исключения.

Свойства для <object>
excludes

(строка или массив строк) Шаблон с подстановкой (*) или массив шаблонов, содержащих исходные поля для исключения из ответа.

Вы также можете использовать это свойство для исключения полей из подмножества, указанного в свойстве includes.

includes

(строка или массив строк) Шаблон с подстановкой (*) или массив шаблонов, содержащих исходные поля для возврата.

Если это свойство указано, возвращаются только эти исходные поля. Вы можете исключить поля из этого подмножества, используя свойство excludes.

stats
(Необязательно, массив строк) Группы статистики, которые необходимо связать с поиском. Каждая группа поддерживает агрегацию статистики для связанных поисков. Эти статистические данные можно получить с помощью API статистики индексов.
terminate_after

(Необязательно, целое число) Максимальное количество документов для сбора для каждого фрагмента. Если запрос достигнет этого предела, Elasticsearch прервет его выполнение досрочно. Elasticsearch собирает документы до сортировки.

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

По умолчанию 0, что не приводит к досрочному прерыванию выполнения запроса.

timeout
(Необязательно, единицы измерения времени) Указывает период ожидания ответа от каждого фрагмента. Если ответ не получен до истечения времени ожидания, запрос завершается ошибкой. По умолчанию таймаут не установлен.
version
(Необязательно, Булево) Если true, возвращает версию документа как часть совпадения. По умолчанию false.

Тело ответа

_scroll_id

(строка) Идентификатор поиска и его контекста поиска.

Вы можете использовать этот идентификатор прокрутки с API прокрутки, чтобы получить следующую партию результатов поиска для запроса. См. Результаты поиска с прокруткой.

Этот параметр возвращается только в том случае, если в запросе указан параметр scroll.

took

(целое число) Миллисекунды, потребовавшиеся Elasticsearch для выполнения запроса.

Это значение рассчитывается путем измерения времени, прошедшего между получением запроса на узле координации и моментом, когда узел координации готов отправить ответ.

Время выполнения включает:

  • Время связи между узлом координации и узлами данных
  • Время, которое запрос тратит в search пуле потоков, в очереди на выполнение
  • Время фактического выполнения

Время выполнения не включает:

  • Время, необходимое для отправки запроса в Elasticsearch
  • Время, необходимое для сериализации JSON-ответа
  • Время, необходимое для отправки ответа клиенту
timed_out
(Булево) Если true, запрос истек по времени до завершения; возвращенные результаты могут быть частичными или пустыми.
_shards

(объект) Содержит количество фрагментов, используемых для запроса.

Свойства _shards
total
(целое число) Общее количество фрагментов, требующих запроса, включая неназначенные фрагменты.
successful
(целое число) Количество фрагментов, успешно выполнивших запрос.
skipped
(целое число) Количество фрагментов, пропустивших запрос, потому что легкая проверка помогла понять, что документы не могут соответствовать этому фрагменту. Это обычно происходит, когда запрос поиска включает фильтр диапазона, а фрагмент содержит только значения, выпадающие из этого диапазона.
failed
(целое число) Количество фрагментов, не выполнивших запрос. Обратите внимание, что фрагменты, которые не назначены, не считаются ни успешными, ни неудачными. Поэтому наличие failed+successful меньше, чем total, указывает на то, что некоторые фрагменты не были назначены.
hits

(объект) Содержит возвращенные документы и метаданные.

Свойства hits
total

(объект) Метаданные о количестве соответствующих документов.

Свойства total
value
(целое число) Общее количество соответствующих документов.
relation

(строка) Указывает, является ли количество соответствующих документов в параметре value точным или нижней границей.

Значения relation:
eq
Точное
gte
Нижняя граница
max_score

(вещественное число) Наибольший возвращенный балл документа _score.

Это значение null для запросов, которые не сортируют по _score.

hits

(массив объектов) Массив возвращенных объектов документов.

Свойства объектов hits
_index
(строка) Название индекса, содержащего возвращенный документ.
_id
(строка) Уникальный идентификатор возвращенного документа. Этот идентификатор уникален только в рамках возвращенного индекса.
_score
(вещественное число с плавающей точкой) Положительное 32-битовое число с плавающей точкой, используемое для определения релевантности возвращенного документа.
_source

(объект) Исходное JSON-тело, переданное для документа во время индексации.

Вы можете использовать параметр _source, чтобы исключить это свойство из ответа, или указать, какие поля источника нужно вернуть.

fields

(объект) Содержит значения полей для документов. Эти поля должны быть указаны в запросе с использованием одного или нескольких следующих параметров запроса:

  • fields
  • docvalue_fields
  • script_fields
  • stored_fields

Это свойство возвращается только в том случае, если один или несколько из этих параметров заданы.

Свойства fields
<field>
(массив) Ключ — имя поля. Значение — значение для поля.

Примеры

resp = client.search(
    index="my-index-000001",
    from_="40",
    size="20",
    query={
        "term": {
            "user.id": "kimchy"
        }
    },
)
print(resp)
response = client.search(
  index: 'my-index-000001',
  from: 40,
  size: 20,
  body: {
    query: {
      term: {
        'user.id' => 'kimchy'
      }
    }
  }
)
puts response
const response = await client.search({
  index: "my-index-000001",
  from: 40,
  size: 20,
  query: {
    term: {
      "user.id": "kimchy",
    },
  },
});
console.log(response);
GET /my-index-000001/_search?from=40&size=20
{
  "query": {
    "term": {
      "user.id": "kimchy"
    }
  }
}

API возвращает следующий ответ:

{
  "took": 5,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 20,
      "relation": "eq"
    },
    "max_score": 1.3862942,
    "hits": [
      {
        "_index": "my-index-000001",
        "_id": "0",
        "_score": 1.3862942,
        "_source": {
          "@timestamp": "2099-11-15T14:12:12",
          "http": {
            "request": {
              "method": "get"
            },
            "response": {
              "status_code": 200,
              "bytes": 1070000
            },
            "version": "1.1"
          },
          "source": {
            "ip": "127.0.0.1"
          },
          "message": "GET /search HTTP/1.1 200 1070000",
          "user": {
            "id": "kimchy"
          }
        }
      },
      ...
    ]
  }
}

© 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-search.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API