【问题标题】:Elasticsearch reindexing approachElasticsearch 重新索引方法
【发布时间】:2014-08-14 16:43:46
【问题描述】:

我使用弹性搜索基于 2 亿条记录进行数据研究。有时需要使用新的同义词和停用词更新索引,因此应该重新索引记录。 现在,我正在尝试寻找尽快完成重新索引过程的方法。我想到了构建 elasticsearch 插件,它应该:

  1. 观察同义词/停用词文件更改的文件系统
  2. 区分以前的同义词/停用词文件
  3. 查找可能因同义词/停用词文件更改而受到影响的记录
  4. 仅重新索引在 3 上找到的记录

也许你有更好的方法请分享。

【问题讨论】:

  • 你想解决什么问题?减少索引时间?我认为停用词是索引定义的一部分,你可能不得不重新索引所有的东西。
  • 是的,我需要减少重新索引时间。我想停用词和同义词已加载并存储到特定的 lucene 过滤器中,因此可以重写这些过滤器以重新初始化停用词/同义词文件更改。所以我的想法是获取可能因文件更改而受到影响的记录并仅重新索引它们。
  • 我理解您的担忧,但我不确定它是否会起作用。
  • 为什么?有什么陷阱吗?

标签: elasticsearch


【解决方案1】:

下面的方法怎么样:

  1. 为索引创建别名并在搜索中使用它
  2. 当关键字/停用词更改创建新索引时
  3. 当新索引充满数据时,将先前创建的别名从旧索引移动到新索引
  4. 删除旧索引

感谢您的索引始终可用(移动别名期间除外,但它需要几秒钟)并且感谢重新索引时间无关紧要。

这里有更多关于在更新索引时使用别名的详细信息和更好的解释:Is there a smarter way to reindex elasticsearch?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 2017-01-25
    相关资源
    最近更新 更多