删除同义词集 API
删除一个同义词集。
DELETE _synonyms/<synonyms_set>
前置条件
- 此 API 需要
manage_search_synonyms集群权限。 - 你只能删除未被任何索引分析器使用的同义词集。参见下方的「删除同义词集的分析器要求」。
路径参数
<synonyms_set>
(必需,字符串)要删除的同义词集标识符。
响应码
400:未提供synonyms_set标识符,或者由于同义词集不满足指定的要求而无法删除。404:(缺少资源)未找到标识符为synonyms_set的同义词集。
示例
以下示例删除名为 my-synonyms-set 的同义词集:
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"
}
],
"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"
},
"status": 400
}
如何移除正在使用中的同义词集:
- 创建一个不包含引用该同义词集的词元过滤器的新索引。
- 使用 reindex API 将数据复制过去。
- 删除旧索引。
- 一旦同义词集不再被任何分析器使用,删除请求就会成功。