elasticsearch 实时更新Elasticsearch同义词
背景: 在这段时间里,我一直认为,如果同义词文件中有任何更改,则需要重新编制整个索引的索引。当然,如果索引的大小很小,那么这个过程就不会那么慢,但是这个过程本身是乏味的,并且会有停机时间 因此,问题:
elasticsearch 实时更新Elasticsearch同义词,
elasticsearch,
elasticsearch,背景: 在这段时间里,我一直认为,如果同义词文件中有任何更改,则需要重新编制整个索引的索引。当然,如果索引的大小很小,那么这个过程就不会那么慢,但是这个过程本身是乏味的,并且会有停机时间 因此,问题: 在这种情况下,我的理解是错误的吗?意味着有更简单的方法来反映我的索引的同义词更改?无需重新编制索引 在未来的需求中,可能不需要手动更新文件中的规则,而是可以从DB甚至UI进行更改。这能做到吗?如果可能的话,你能给我一些启发或建议吗 我相信这与查询或索引时间同义词扩展有关,在此之前也出现过类似的问题
- 重新编制索引是一种方法
- 是的,您可以通过API获取模板并使用同义词进行更新。但这里需要重新打开和关闭索引
- 可以使用基于文件的同义词来避免重新编制索引
在映射中使用search_analyzer而不是analyzer将使同义词分析器仅在搜索时使用 回答您的问题:(在评论中提到)。
对“更新同义词列表不会更改任何已编制索引的文档”有何影响?
-查询时间方法将选择同义词,而索引时间不会选择同义词。
这是否意味着新同义词不会影响所有现有文档?
-是,它不会影响文档,但会根据配置的同义词影响搜索结果。
例如,我在现有文档中有McD,然后我添加了一个新的同义词McD,McDonald,这是否意味着如果没有重新索引,这个同义词将不起作用?
-我相信以上两个QA回答了这个问题
有关更多信息,请参阅本文:感谢您的友好回复。我不明白的是,更新同义词列表不会改变任何已经被索引的文档,这会产生什么影响?这是否意味着新的同义词不会影响所有现有文档?例如,我在我现有的文档中有MCD,然后我添加了一个新的同义词MCD,麦当劳,它的意思是没有重新索引,这个同义词不起作用吗?@ Xonos,我已经编辑了你上面的问题的答案,如果它回答了你所有的问题,请考虑接受答案。谢谢你的回答,我已经接受了。但根据您的解释,似乎即使使用当前的ES版本(版本7),查询时间和索引时间同义词仍然存在,不是吗?对于版本6,其7的同义词还没有尝试过。但弹性搜索提到不推荐的,如果他们放弃任何功能。如果他们没有对索引类型执行此操作,则意味着它就在那里。如果移动到基于文件的同义词,则需要重新启动节点。