Запрос с правилами
rule_query был переименован в rule в 8.15.0. Старый синтаксис с использованием rule_query и ruleset_id устарел и будет удален в будущей версии, поэтому настоятельно рекомендуется мигрировать существующие запросы с правилами в новую структуру API.
Запрос с правилами не поддерживается в сочетании с переопределением порядка выдачи результатов. Если вы хотите использовать правила запроса совместно с переопределением порядка выдачи, используйте вместо этого инструмент для извлечения данных по правилам запроса.
Применяет правила запроса к запросу перед возвращением результатов. Правила запроса могут использоваться для продвижения документов по аналогии с закрепленным запросом на основе соответствия определённым правилам или для идентификации конкретных документов, которые следует исключить из контекстного набора результатов. Если не определены соответствующие правила запроса, возвращаются «органические» совпадения для запроса. Все соответствующие правила применяются в том порядке, в котором они указаны в наборе правил запроса. Если один и тот же документ соответствует как правилу exclude, так и правилу pinned, документ будет исключён.
Для использования запроса с правилами сначала необходимо определить набор правил запроса. Используйте API для управления правилами запроса для создания и управления правилами запроса. Дополнительную информацию и примеры см. в разделе Поиск с правилами запроса.
Пример запроса
resp = client.search(
query={
"rule": {
"match_criteria": {
"user_query": "pugs"
},
"ruleset_ids": [
"my-ruleset"
],
"organic": {
"match": {
"description": "puggles"
}
}
}
},
)
print(resp) const response = await client.search({
query: {
rule: {
match_criteria: {
user_query: "pugs",
},
ruleset_ids: ["my-ruleset"],
organic: {
match: {
description: "puggles",
},
},
},
},
});
console.log(response); GET /_search
{
"query": {
"rule": {
"match_criteria": {
"user_query": "pugs"
},
"ruleset_ids": ["my-ruleset"],
"organic": {
"match": {
"description": "puggles"
}
}
}
}
} Параметры верхнего уровня для rule_query
-
ruleset_ids - (Обязательный, массив) Массив одного или нескольких уникальных идентификаторов наборов правил запроса с правилами, основанными на запросах, для соответствия и применения при необходимости. Наборы правил и их связанные правила оцениваются в том порядке, в котором они указаны в запросе и наборе правил. Максимальное количество наборов правил, которые можно указать, равно 10.
-
match_criteria - (Обязательный, объект) Определяет критерии соответствия, которые необходимо применить к правилам в данном наборе правил запроса. Критерии соответствия должны соответствовать ключам, определённым в поле
criteria.metadataправила. -
organic - (Обязательный, объект) Любой вариант запроса, используемого для возвращения результатов, который может быть изменён соответствующими правилами запроса. Если правила запроса не совпадают и не применяются, этот запрос будет выполнен без изменений.
© 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/query-dsl-rule-query.html