弹性搜索同义词-删除操作

问题描述

在创建/更新项目时,弹性搜索(版本6.2.3)中的同义词是否存储在项目中?还是在每个搜索查询中将同义词应用于索引?

我们需要删除具有600万项的索引的同义词,但我看不到文档中从索引中删除这些同义词是否足够

DELETE /api/as/v1/engines/{ENGINE_NAME}/synonyms/{SYNONYM_SET_ID}

或者之后需要重新索引所有项目,在这种情况下,最好删除当前索引并创建一个新索引。

解决方法

  1. 如果在插入文档期间应用了同义词

    • 删除当前同义词,不会更改索引的现有数据中的任何内容,现有数据应可通过同义词进行搜索。
  2. 如果在查询期间应用了同义词

    • 在这种情况下,删除同义词将停止使用同义词搜索文档。

现在的问题是您要使用索引时间分析还是查询时间分析。您可以签入映射。例如

"mappings": {
    "properties": {
      "text": {
        "type": "text","analyzer": "autocomplete",// <======== For index time analysis
        "search_analyzer": "synonym_analyzer" //<====== For Query time analysis  
      }
    }
  }
}