elasticsearch 实时更新Elasticsearch同义词,elasticsearch,elasticsearch" /> elasticsearch 实时更新Elasticsearch同义词,elasticsearch,elasticsearch" />

elasticsearch 实时更新Elasticsearch同义词

elasticsearch 实时更新Elasticsearch同义词,elasticsearch,elasticsearch,背景: 在这段时间里,我一直认为,如果同义词文件中有任何更改,则需要重新编制整个索引的索引。当然,如果索引的大小很小,那么这个过程就不会那么慢,但是这个过程本身是乏味的,并且会有停机时间 因此,问题: 在这种情况下,我的理解是错误的吗?意味着有更简单的方法来反映我的索引的同义词更改?无需重新编制索引 在未来的需求中,可能不需要手动更新文件中的规则,而是可以从DB甚至UI进行更改。这能做到吗?如果可能的话,你能给我一些启发或建议吗 我相信这与查询或索引时间同义词扩展有关,在此之前也出现过类似的问题

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

因此,问题:

  • 在这种情况下,我的理解是错误的吗?意味着有更简单的方法来反映我的索引的同义词更改?无需重新编制索引

  • 在未来的需求中,可能不需要手动更新文件中的规则,而是可以从DB甚至UI进行更改。这能做到吗?如果可能的话,你能给我一些启发或建议吗

  • 我相信这与查询或索引时间同义词扩展有关,在此之前也出现过类似的问题:这个问题,但这是否仍然适用于当前版本5、6甚至7?由于最终指南早在2版,所以我有点担心它已经过时了

  • 如果使用查询时间同义词,如果我对同义词文件做了任何更改,是否需要重新启动节点才能生效

  • 谢谢。

    • 重新编制索引是一种方法
    • 是的,您可以通过API获取模板并使用同义词进行更新。但这里需要重新打开和关闭索引
    • 可以使用基于文件的同义词来避免重新编制索引
    您可以关闭索引、更新同义词列表并打开索引。 更新同义词列表不会更改任何已编制索引的文档。它将仅适用于搜索以及新的或更新的文档。要将更改应用于现有文档,您需要重新编制数据索引。 以下链接可能会有所帮助:

    同义词可以在查询时和索引时应用,在性能和灵活性之间进行权衡。 这两种方法的优缺点您可以在此处阅读:。
    在映射中使用search_analyzer而不是analyzer将使同义词分析器仅在搜索时使用

    回答您的问题:(在评论中提到)。
    对“更新同义词列表不会更改任何已编制索引的文档”有何影响?
    -查询时间方法将选择同义词,而索引时间不会选择同义词。
    这是否意味着新同义词不会影响所有现有文档?
    -是,它不会影响文档,但会根据配置的同义词影响搜索结果。
    例如,我在现有文档中有McD,然后我添加了一个新的同义词McD,McDonald,这是否意味着如果没有重新索引,这个同义词将不起作用?
    -我相信以上两个QA回答了这个问题


    有关更多信息,请参阅本文:

    感谢您的友好回复。我不明白的是,更新同义词列表不会改变任何已经被索引的文档,这会产生什么影响?这是否意味着新的同义词不会影响所有现有文档?例如,我在我现有的文档中有MCD,然后我添加了一个新的同义词MCD,麦当劳,它的意思是没有重新索引,这个同义词不起作用吗?@ Xonos,我已经编辑了你上面的问题的答案,如果它回答了你所有的问题,请考虑接受答案。谢谢你的回答,我已经接受了。但根据您的解释,似乎即使使用当前的ES版本(版本7),查询时间和索引时间同义词仍然存在,不是吗?对于版本6,其7的同义词还没有尝试过。但弹性搜索提到不推荐的,如果他们放弃任何功能。如果他们没有对索引类型执行此操作,则意味着它就在那里。如果移动到基于文件的同义词,则需要重新启动节点。