Создание или обновление правила синонимов
Создаёт или обновляет правило синонимов для набора синонимов.
Запрос
PUT _synonyms/<synonyms_set>/<synonym_rule>
Предварительные условия
Требуется привилегия кластера manage_search_synonyms.
Параметры пути
-
<synonyms_set> - (Обязательно, строка) Идентификатор набора синонимов для обновления.
-
<synonym_rule> - (Обязательно, строка) Идентификатор правила синонимов для создания или обновления.
Тело запроса
-
synonyms -
(Обязательно, строка) Определение правила синонимов. Оно должно быть в формате Solr. Некоторые примеры:
- "i-pod, i pod ⇒ ipod",
- "universe, cosmos"
Примеры
В следующем примере обновляется существующее правило синонимов под названием test-1 для набора синонимов my-synonyms-set:
resp = client.synonyms.put_synonym_rule(
set_id="my-synonyms-set",
rule_id="test-1",
synonyms="hello, hi, howdy",
)
print(resp) response = client.synonyms.put_synonym_rule(
set_id: 'my-synonyms-set',
rule_id: 'test-1',
body: {
synonyms: 'hello, hi, howdy'
}
)
puts response const response = await client.synonyms.putSynonymRule({
set_id: "my-synonyms-set",
rule_id: "test-1",
synonyms: "hello, hi, howdy",
});
console.log(response); PUT _synonyms/my-synonyms-set/test-1
{
"synonyms": "hello, hi, howdy"
} {
"result": "updated",
"reload_analyzers_details": {
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"reload_details": [
{
"index": "test-index",
"reloaded_analyzers": [
"my_search_analyzer"
],
"reloaded_node_ids": [
"1wYFZzq8Sxeu_Jvt9mlbkg"
]
}
]
}
} Все анализаторы, использующие этот набор синонимов, будут автоматически перезагружены для отражения нового правила.
Если какое-либо из включённых правил синонимов некорректно, API вернёт ошибку.
resp = client.synonyms.put_synonym_rule(
set_id="my-synonyms-set",
rule_id="test-1",
synonyms="hello => hi => howdy",
)
print(resp) const response = await client.synonyms.putSynonymRule({
set_id: "my-synonyms-set",
rule_id: "test-1",
synonyms: "hello => hi => howdy",
});
console.log(response); PUT _synonyms/my-synonyms-set/test-1
{
"synonyms": "hello => hi => howdy"
} {
"error": {
"root_cause": [
{
"type": "action_request_validation_exception",
"reason": "Validation Failed: 1: More than one explicit mapping specified in the same synonyms rule: [hello => hi => howdy];",
"stack_trace": ...
}
],
"type": "action_request_validation_exception",
"reason": "Validation Failed: 1: More than one explicit mapping specified in the same synonyms rule: [hello => hi => howdy];",
"stack_trace": ...
},
"status": 400
}
© 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/put-synonym-rule.html