删除同义词集

编辑

删除同义词集。

请求

编辑

DELETE _synonyms/<synonyms_set>

先决条件

编辑
  • 需要 manage_search_synonyms 集群权限。
  • 您只能删除未被任何索引分析器使用的同义词集。有关更多信息,请参阅 删除同义词集分析器要求

路径参数

编辑
<synonyms_set>
(必需,字符串)要删除的同义词集标识符。

响应代码

编辑
400
未提供 synonyms_set 标识符,或者由于不满足指定的要求,无法删除同义词集。
404 (缺少资源)
未找到具有标识符 synonyms_set 的同义词集。

示例

编辑

以下示例删除名为 my-synonyms-set 的同义词集

resp = client.synonyms.delete_synonym(
    id="my-synonyms-set",
)
print(resp)
response = client.synonyms.delete_synonym(
  id: 'my-synonyms-set'
)
puts response
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
}

要删除同义词集,您必须首先删除所有包含使用它的分析器的索引。您可以通过创建一个不包含带有同义词集的标记过滤器的新索引来迁移索引,并使用 Reindex 来复制索引数据。完成后,您可以删除索引。

当同义词集未在分析器中使用时,您将能够删除它。