同義語セットの削除

同義語セットを削除します。

リクエスト

DELETE _synonyms/<synonyms_set>

前提条件

  • manage_search_synonyms クラスター権限が必要です。
  • いかなるインデックスアナライザーでも使用されていない同義語セットのみを削除できます。詳細については、同義語セットアナライザー要件の削除を参照してください。

パスパラメータ

  • <synonyms_set>
  • (必須、文字列) 削除する同義語セットの識別子。

レスポンスコード

  • 400
  • synonyms_set 識別子が提供されていないか、指定された要件を満たさないため、同義語セットを削除できません。
  • 404 (リソースが不足しています)
  • 識別子 synonyms_set の同義語セットは見つかりませんでした。

以下の例は、my-synonyms-set という名前の同義語セットを削除します:

Python

  1. resp = client.synonyms.delete_synonym(
  2. id="my-synonyms-set",
  3. )
  4. print(resp)

Ruby

  1. response = client.synonyms.delete_synonym(
  2. id: 'my-synonyms-set'
  3. )
  4. puts response

Js

  1. const response = await client.synonyms.deleteSynonym({
  2. id: "my-synonyms-set",
  3. });
  4. console.log(response);

コンソール

  1. DELETE _synonyms/my-synonyms-set

同義語セットアナライザー要件の削除

同義語セットは、同義語グラフトークンフィルターおよび同義語トークンフィルターで使用できます。これらの同義語フィルターは、検索アナライザーの一部として使用できます。

インデックスが復元されるとき(ノードが起動する時やインデックスがオープンになる時など)にアナライザーをロードする必要があります。アナライザーがフィールドマッピングで使用されていなくても、インデックス回復フェーズでロードする必要があります。

アナライザーのいずれかがロードできない場合、インデックスは利用できなくなり、インデックスシャードが利用できないため、クラスターのステータスは赤または黄になります。

それを防ぐために、アナライザーで使用されている同義語セットは削除できません。この場合、削除リクエストは、次のエラーメッセージを伴う 400 レスポンスコードを返します:

コンソール-結果

  1. {
  2. "error": {
  3. "root_cause": [
  4. {
  5. "type": "illegal_argument_exception",
  6. "reason": "synonyms set [my-synonyms-set] cannot be deleted as it is used in the following indices: index-1, index-2",
  7. "stack_trace": ...
  8. }
  9. ],
  10. "type": "illegal_argument_exception",
  11. "reason": "synonyms set [my-synonyms-set] cannot be deleted as it is used in the following indices: index-1, index-2",
  12. "stack_trace": ...
  13. },
  14. "status": 400
  15. }

同義語セットを削除するには、まずそれを使用しているアナライザーを含むすべてのインデックスを削除する必要があります。新しいインデックスを作成して同義語セットを含まないトークンフィルターを作成し、再インデックスを使用してインデックスデータをコピーできます。完了したら、インデックスを削除できます。

同義語セットがアナライザーで使用されていない場合、削除できるようになります。