问题描述
在创建/更新项目时,弹性搜索(版本6.2.3)中的同义词是否存储在项目中?还是在每个搜索查询中将同义词应用于索引?
我们需要删除具有600万项的索引的同义词,但我看不到文档中从索引中删除这些同义词是否足够
DELETE /api/as/v1/engines/{ENGINE_NAME}/synonyms/{SYNONYM_SET_ID}
或者之后需要重新索引所有项目,在这种情况下,最好删除当前索引并创建一个新索引。
解决方法
-
如果在插入文档期间应用了同义词
- 删除当前同义词,不会更改索引的现有数据中的任何内容,现有数据应可通过同义词进行搜索。
-
如果在查询期间应用了同义词
- 在这种情况下,删除同义词将停止使用同义词搜索文档。
现在的问题是您要使用索引时间分析还是查询时间分析。您可以签入映射。例如
"mappings": {
"properties": {
"text": {
"type": "text","analyzer": "autocomplete",// <======== For index time analysis
"search_analyzer": "synonym_analyzer" //<====== For Query time analysis
}
}
}
}