同義語セットの削除
同義語セットを削除します。
リクエスト
DELETE _synonyms/<synonyms_set>
前提条件
manage_search_synonyms
クラスター権限が必要です。- いかなるインデックスアナライザーでも使用されていない同義語セットのみを削除できます。詳細については、同義語セットアナライザー要件の削除を参照してください。
パスパラメータ
<synonyms_set>
- (必須、文字列) 削除する同義語セットの識別子。
レスポンスコード
400
synonyms_set
識別子が提供されていないか、指定された要件を満たさないため、同義語セットを削除できません。404
(リソースが不足しています)- 識別子
synonyms_set
の同義語セットは見つかりませんでした。
例
以下の例は、my-synonyms-set
という名前の同義語セットを削除します:
Python
resp = client.synonyms.delete_synonym(
id="my-synonyms-set",
)
print(resp)
Ruby
response = client.synonyms.delete_synonym(
id: 'my-synonyms-set'
)
puts response
Js
const response = await client.synonyms.deleteSynonym({
id: "my-synonyms-set",
});
console.log(response);
コンソール
DELETE _synonyms/my-synonyms-set
同義語セットアナライザー要件の削除
同義語セットは、同義語グラフトークンフィルターおよび同義語トークンフィルターで使用できます。これらの同義語フィルターは、検索アナライザーの一部として使用できます。
インデックスが復元されるとき(ノードが起動する時やインデックスがオープンになる時など)にアナライザーをロードする必要があります。アナライザーがフィールドマッピングで使用されていなくても、インデックス回復フェーズでロードする必要があります。
アナライザーのいずれかがロードできない場合、インデックスは利用できなくなり、インデックスシャードが利用できないため、クラスターのステータスは赤または黄になります。
それを防ぐために、アナライザーで使用されている同義語セットは削除できません。この場合、削除リクエストは、次のエラーメッセージを伴う 400
レスポンスコードを返します:
コンソール-結果
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "synonyms set [my-synonyms-set] cannot be deleted as it is used in the following indices: index-1, index-2",
"stack_trace": ...
}
],
"type": "illegal_argument_exception",
"reason": "synonyms set [my-synonyms-set] cannot be deleted as it is used in the following indices: index-1, index-2",
"stack_trace": ...
},
"status": 400
}
同義語セットを削除するには、まずそれを使用しているアナライザーを含むすべてのインデックスを削除する必要があります。新しいインデックスを作成して同義語セットを含まないトークンフィルターを作成し、再インデックスを使用してインデックスデータをコピーできます。完了したら、インデックスを削除できます。
同義語セットがアナライザーで使用されていない場合、削除できるようになります。