动态更改Elasticsearch同义词
是否可以在索引中存储elasticsearch的同义词?还是可以从像ouchdb这样的数据库中获取同义词列表?我想通过REST-
API将同义词动态添加到elasticsearch。
-
使用同义词有两种方法:
- 在编制索引时扩展它们,
- 在查询时扩展它们。
不建议在查询时扩展同义词,因为它会引起以下问题:
- 评分,因为同义词具有不同的文档频率,
- 多令牌同义词,因为查询解析器在空白处拆分。
有关更多详细信息,请参见http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.SynonymFilterFactory(在Solr
Wiki上,但也与ElasticSearch相关)。因此,推荐的方法是在索引编制时扩展同义词。在您的情况下,如果同义词列表是动态管理的,则意味着您应重新索引每个包含其同义词列表已更新的术语的文档,以便在更新前后分析的文档之间评分保持一致。我并不是说这是不可能的,但是这需要一些工作,并且可能会导致索引中出现频率很高的同义词的性能问题。