是否可以将elasticsearch的同义词存储在索引中?或者可以从couchdb这样的数据库中获取同义词列表?我想通过REST-API将同义词动态添加到elasticsearch中。
发布于 2011-09-02 00:51:07
使用同义词时有两种方法:
不建议在查询时扩展同义词,因为这会引发以下问题:
由于查询解析器在whitespaces.上拆分,因此
有关这一点的更多详细信息,请访问http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.SynonymFilterFactory (在Solr wiki上,但也与ElasticSearch相关)。
因此,推荐的方法是在索引时扩展同义词。在您的例子中,如果同义词列表是动态管理的,这意味着您应该重新索引包含其同义词列表已更新的术语的每个文档,以便在更新前和更新后分析的文档之间保持一致的评分。我并不是说这是不可能的,但这需要一些工作,并且可能会引发同义词的性能问题,因为同义词在您的索引中出现的频率很高。
发布于 2015-12-11 03:54:51
对于几年前其他答案中提出的解决方案,现在几乎没有新的解决方案。作为插件实现的两种主要方法:
关于这个主题的讨论可以在elastisearch github票务系统上找到:https://github.com/brusic/refresh-token-filters
发布于 2011-09-24 16:17:21
在elasticsearch中更新同义词列表并不是很痛苦。它可以通过打开和关闭来完成,您可以从任何地方驱动它,但需要一些您自己的基础设施。它是这样工作的:
<代码>H19将索引别名从当前索引重新指向新索引<代码>H210<代码>F211
https://stackoverflow.com/questions/7272368
复制相似问题