在 Solr 中刷新索引

Refresh index in Solr

在集成测试的情况下,在测试开始之前,我将文档放入 Solr,然后等待(使用 sleep...)Solr 进行索引。

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

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

我想您想要刷新索引的原因是因为您想要接近实时的搜索。本质上,您希望搜索立即反映添加的文档。

在 solr 中,通常由 openSearcher=true 的 softCommits 或 hardCommit 控制。

在此处阅读更多相关信息

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

要点是这样

Hard commits are about durability, soft commits are about visibility

现在,如果我知道您这样做是为了测试目的,那么您可能无法更改您的集合的软提交时间(因为这会产生其他影响)。

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

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

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

然而,每次您进行软提交时,它都会使所有顶级缓存失效。(在上面 link 中阅读有关所有内容的更多信息。)

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