首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实时更新Elasticsearch同义词

实时更新Elasticsearch同义词
EN

Stack Overflow用户
提问于 2019-09-06 00:06:53
回答 1查看 1.4K关注 0票数 4

背景:在这段时间内,我一直认为,如果同义词文件中有任何更改,则需要重新索引整个索引。当然,如果索引大小很小,进程就不会那么慢,但是进程本身是乏味的,并且会有停机时间。

所以问题是:

  1. 在这种情况下,我的理解有错吗?意味着有更容易的方法来反映我的索引的同义词变化?而不需要重新索引。
  2. 在未来的需求中,也许可以从DB甚至UI中进行更改,而不是手动更新文件中的规则。这能办到吗?如果这是可能的话,可以启发或建议我如何做到这一点?
  3. 我认为这与查询或索引时间同义词扩展有关,在此之前也会出现类似的问题:问题,但这是否仍然适用于当前的版本5、6甚至7?因为权威指南早在第二版就有了,所以我有点担心它已经过时了。
  4. 如果使用查询时同义词,如果我对同义词文件做了任何更改,是否需要重新启动节点才能生效?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-06 04:54:01

  • 重新编制索引是一种方法。
  • 是的,您可以通过API.but获得模板并用同义词更新它,这里需要打开和关闭索引。
  • 您可以使用基于文件的同义词来避免重新索引。

可以关闭索引、更新同义词列表和打开索引。更新同义词列表不会更改任何已编入索引的文档。它只适用于搜索和新的或更新的文件。若要将更改应用于现有文档,需要重新编制数据索引。下面的链接可能会有帮助:

https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-open-close.html https://sharing.luminis.eu/blog/updatable-synonyms-in-elasticsearch-bol-com/

同义词可以在查询时间和索引时间应用,在性能和灵活性之间进行权衡。这两种方法的优缺点都可以在这里读到:https://www.elastic.co/guide/en/elasticsearch/guide/1.x/synonyms-expand-or-contract.html#synonyms-expansion

分析器的Using search_analyzer instead在您的映射中将使同义词分析器只在搜索时使用。

回答你的问题:(在评论中提到)。

对“更新同义词列表不会更改任何已编入索引的文档”的影响是什么?

  • 查询时间方法将选择同义词,而索引时间则不会。 这是否意味着新的同义词不会影响所有现有的文档?
  • 是的,它不会影响文档,但会影响按同义词配置的搜索结果。 例如,我的现有文档中有McD,然后我添加了一个新的同义词McD,McDonald,这是否意味着如果没有重新索引,这个同义词就不能工作吗?
  • 我相信上面两个QA回答了这个问题。

有关更多信息,请参阅本文:http://bitsandbites.me/blog/2014/04/08/elasticsearch-synonyms/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57814235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档