gpt4 book ai didi

solr - 如何配置 Solr 以提高索引速度

转载 作者:行者123 更新时间:2023-12-03 23:49:26 25 4
gpt4 key购买 nike

我有一个客户端程序,它生成 1-50 百万个 Solr 文档并将它们添加到 Solr。
我正在使用 ConcurrentUpdateSolrServer 从客户端推送文档,每个请求 1000 个文档。
文档相对较小(很少有小文本字段)。
我想提高索引速度。
我试图将“ramBufferSizeMB”增加到 1G,将“mergeFactor”增加到 25,但没有看到任何变化。
我想知道是否有其他一些推荐的设置来提高 Solr 索引速度。
任何相关 Material 的链接将不胜感激。

最佳答案

看起来您正在将数据批量导入 Solr,因此您无需立即搜索任何数据。

首先,您可以增加每个请求的文档数量。由于您的文档很小,我什至会将每个请求增加到 100K 文档或更多并尝试。

其次,您希望减少批量索引时提交的次数。在您的 solrconfig.xml 中查找:

<!-- AutoCommit

Perform a hard commit automatically under certain conditions.
Instead of enabling autoCommit, consider using "commitWithin"
when adding documents.

http://wiki.apache.org/solr/UpdateXmlMessages

maxDocs - Maximum number of documents to add since the last
commit before automatically triggering a new commit.

maxTime - Maximum amount of time in ms that is allowed to pass
since a document was added before automatically
triggering a new commit.

openSearcher - if false, the commit causes recent index changes
to be flushed to stable storage, but does not cause a new
searcher to be opened to make those changes visible.
-->
<autoCommit>
<maxTime>15000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>

您可以完全禁用自动提交,然后在发布所有文档后调用提交。否则,您可以按如下方式调整数字:

默认 maxTime是 15 秒,因此如果有未提交的文档,则每 15 秒自动提交一次,因此您可以将其设置为较大的值,例如 3 小时(即 3*60*60*1000)。您也可以添加 <maxDocs>50000000</maxDocs>这意味着只有在添加了 5000 万个文档后才会自动提交。发布所有文档后,手动或从 SolrJ 调用一次 commit - 提交需要一段时间,但这总体上会快得多。

同样在完成批量导入后,减少 maxTimemaxDocs ,以便您对 Solr 执行的任何增量帖子都将更快地提交。或使用 commitWithin如 solrconfig 中所述。

关于solr - 如何配置 Solr 以提高索引速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15667748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com