在Solr中刷新索引

时间:2018-04-26 14:09:21

标签: solr solrj

如果是集成测试,在测试开始之前我将文档放入Solr,并等待(使用sleep ...)Solr进行索引。

使用Elasticsearch,我知道可以刷新索引。

是否可以对Solr做同样的事情?以及如何进行?

1 个答案:

答案 0 :(得分:1)

我想你想要刷新索引的原因是因为你想要近乎实时的搜索。基本上,您希望搜索能够即时反映添加的文档。

在solr中,通常由softCommits控制或使用openSearcher = true进行hardCommit。

请在此处详细了解

https://lucidworks.com/2013/08/23/understanding-transaction-logs-softcommit-and-commit-in-sorlcloud/

要点就是这个

  

硬提交是关于持久性的,软提交是关于可见性的

现在,如果我理解你这样做是为了测试目的,那么你不可能改变你的收集的软件使用时间(因为这会产生其他影响)。

我认为你可以强制solr在索引时提交更改,如下所示:

http://localhost:8983/solr/my_collection/update?softCommit=true 

因此添加softCommit=true将导致显式提交发生。您可以在添加大量文档后使用上述内容,以使所有文档一起显示在索引中,或者您可以在每个索引文档请求中添加softCommit=true

但是,每次执行软提交时,它都会使所有顶级缓存无效。(在上面的链接中了解有关所有这些内容的更多信息。)

注意:请注意,但通常的建议是不要在外部调用提交。