【问题标题】:Persuading Apache Nutch to commit more frequently to Solr说服 Apache Nutch 更频繁地使用 Solr
【发布时间】:2014-01-04 18:20:22
【问题描述】:

我正在运行 Apache Nutch,它似乎可以工作,并且在小规模运行中将索引文档并在运行结束时提交给 Solr。

不幸的是,我想在一些大型网站的深处建立索引,而 Nutch 不会承诺运行结束。

当您查看超过 100k 的文档堆积起来等待提交时,这会出现明显的问题,内存压力,必须等待很长时间才能获得数据等。

有没有办法说服 Nutch 更频繁地提交?

【问题讨论】:

    标签: solr lucene nutch


    【解决方案1】:

    nutch中有一个名为“solr.commit.size”的配置参数,根据nutch-default.xml中的描述是:

    定义在单个更新批次中发送到 Solr 的文档数量。 处理非常大的文档时减少以防止 Nutch 运行 内存不足。注意:它不会显式触发服务器端提交。

    正如它所说,它没有显式提交,因为将提交时间的决定留给 solr 更加优化。因此,您还应该调整您的 solr 配置参数:autoCommit 和 autoSoftCommit。您可以在 solrconfig.xml 文件中找到它们的描述。

    【讨论】:

    • 我同意后面的部分,配置 Solr 的 autoCommit 和可能的 autoSoftCommit - 如果你想在两者之间搜索。进一步阅读 stackoverflow.com/questions/15667748/…t.co/2I9cmHli3H
    • 我已经尝试过这些,但没有看到 nutch 承诺使用 solr 的迹象。 solr.commit.size 的默认值似乎是 250,但我正在浏览超过 100k 的文档,但没有任何由 nutch 触发的 solr 日志,或者 nutch 在其日志中显示 solr 提交的详细信息。
    • 使用默认设置,如果你使用 crawl 命令,它会在 fetch 步骤的每次迭代中获取 100K 文档,但在 index 步骤它会将大小为 250 的组中的文档发送到索尔。所以我认为你提到的 100k 文档是那些被提取并存储在段中但仍未被索引的文档。
    • 我现在可以看到,在抓取结束时,solr.commit.size 控制着推送到 solr 中的批次。让它在抓取期间提交是一个问题......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多