禁用在solr中提交以加快索引的速度

re1*_*man 3 solr node.js

目前,我使用solr作为搜索服务器.我的问题是我在数据集上做了很多实时索引(虽然文档大小非常小,只有100个字符).我想知道如何通过禁用提交,自动提交等功能来加快速度.只需将其添加到索引中,我不要太担心数据集太不稳定了.我使用节点js库索引到solr.这是一个片段:

 var doc = {
                id: id.id,
                text_t: id.words
                };

                var callback = function(err, response) {
                    if (err) throw err;
                    solr.commit();

                };
            solr.add(doc, callback);
Run Code Online (Sandbox Code Playgroud)

删除,solr.commit()不索引文档(即使我认为commit()只是将其持久化到磁盘)

jpo*_*ntz 6

即将推出的Solr版本将有一个名为软提交的功能,您可能会对此感兴趣.软提交类似于提交,但不会生成fsync以确保数据已写入磁盘.这意味着您可能会丢失数据(例如,如果电源发生故障,但在服务器继续运行时Solr崩溃则不会),但软提交可能比常规(硬)提交快得多,因为OS可以利用缓冲区缓存.

使用当前版本的Solr,一个很好的权衡是使用Solr UpdateHandler 的commitWithin功能.例如,通过使用10000作为commitWithin参数的值,您可以确保在将任何文档添加到索引后最多10秒后提交该文档,并且每10秒将提交率保持在1次提交之下.较低的commitWithin值将提供更好的数据新鲜度,而较高的值会减少磁盘的压力.