是否可以在索引中存储elasticsearch的同义词?或者是否可以从像couchdb这样的数据库中获取同义词列表? 我想通过REST-API动态地将同义词添加到elasticsearch。
答案 0 :(得分:16)
使用同义词时有两种方法:
建议不要在查询时扩展同义词,因为它会引发以下问题:
有关此问题的详细信息,请访问http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.SynonymFilterFactory(在Solr wiki上,但与ElasticSearch相关)。
因此推荐的方法是在索引时扩展同义词。在您的情况下,如果动态管理同义词列表,则意味着您应该重新索引包含已更新同义词列表的术语的每个文档,以便在更新前后分析的文档之间保持一致。我并不是说它不可能,但它需要一些工作,并且可能会引起索引中频率较高的同义词的性能问题。
答案 1 :(得分:3)
几年前,在其他答案中提出的解决方案现在几乎没有新的解决方案。作为插件实现的两种主要方法:
关于这个主题的讨论可以在elastisearch github票证系统上找到:https://github.com/brusic/refresh-token-filters
答案 2 :(得分:2)
在弹性搜索中更新同义词列表并不太痛苦。它可以通过打开和关闭来完成您可以从任何地方驱动它,但需要一些自己的基础设施。它的工作原理如下: