背景:
一直以来,我一直认为,如果同义词文件中有任何更改,您将需要重新索引整个索引。当然,如果索引大小很小,过程不会那么慢,但是过程本身很乏味,并且会有停机时间。
所以问题:
谢谢你。
最佳答案
您可以关闭索引、更新同义词列表并打开索引。
更新同义词列表不会更改任何已编入索引的文档。它仅适用于搜索以及新的或更新的文档。要将更改应用于现有文档,您需要重新索引数据。
以下链接可能会有所帮助:
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 .
在映射中使用 search_analyzer 而不是 analyzer 将使同义词分析器仅在搜索时使用。
回答您的问题: (在评论中提到)。
对“更新同义词列表不会改变任何已经被索引的文档”有什么影响?
- 查询时间方法会选择同义词而索引时间不会。
这是否意味着新同义词不会影响所有现有文档?
- 是的,它不会影响文档,但会根据配置的同义词影响搜索结果。
例如,我现有的文档中有 McD,然后我添加了一个新的同义词 McD,McDonald,这是否意味着没有重新索引,这个同义词将不起作用?
- 我相信以上两个 QA 回答了这个问题。
更多信息请引用这篇文章:http://bitsandbites.me/blog/2014/04/08/elasticsearch-synonyms/
关于elasticsearch - 实时更新 Elasticsearch 同义词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57814235/