【问题标题】:How to update bigger solr index efficiently如何有效地更新更大的 solr 索引
【发布时间】:2013-06-12 06:30:37
【问题描述】:

我有一个更大的 Solr 索引大小。该索引包含 300 万份文档。我需要经常更新一些文件。但是每次 Solr 提交都需要一些时间,因为索引包含数百万个文档。每次提交都会打开一个新的搜索器。所以第一次执行搜索需要一些时间。有什么方法可以有效地更新文档吗?提前致谢。

【问题讨论】:

    标签: solr lucene solrj


    【解决方案1】:

    您可以检查 Solr 4 soft commits,这将使索引更快。新文档将在提交后立即可用,但不会持久保存到索引中。您可以决定偶尔执行一次硬提交。

    Documentation

    软提交要快得多,因为它只会使索引更改可见,并且不会 fsync 索引文件或写入新的索引描述符。如果 JVM 崩溃或断电,上次硬提交后发生的更改将丢失。具有近乎实时要求(希望索引更改对搜索快速可见)的搜索集合将希望经常进行软提交,但不太频繁地进行硬提交。

    可能可以通过事务日志执行恢复。

    如果丢失文档对您来说是个问题,您可以为 Solr 配置主从架构。 Master 是索引发生的地方,而 Slave 是执行搜索的地方,因此索引和提交时间不会对搜索产生太大影响。但是,会有延迟,并且取决于您的提交频率。

    【讨论】:

    • 感谢您的回复。是的。实际上我正在使用软提交。它完成了大约 1/3 的硬提交。但是提交后搜索所花费的时间很长,因为新的搜索器将被打开。我知道这就是 Solr 的行为方式。但如果有其他可用选项,我仍然会很好。
    • 事务日志是为了在任何崩溃的情况下保持状态以进行恢复。它应该处理恢复。
    猜你喜欢
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    相关资源
    最近更新 更多