我有一个缺乏文档的solr设置。 我的问题是 在提交期间,部分改变在前端可见,例如如果2000个文件被提交,前端将只显示2000个文档,经过一段时间5k,10k ......直到完全提交完成。
我希望这种行为发生变化,只有在完全提交后才能看到更改,直到完全提交完成,solr应该使用旧的索引/数据。
答案 0 :(得分:0)
Solr使用近实时搜索的概念。
之前我没有更改默认设置,但您需要查看此内容:https://cwiki.apache.org/confluence/display/solr/Near+Real+Time+Searching
答案 1 :(得分:0)
在您的Solr(4)的solrconfig.xml中,有(或可能)一个名为autoCommit的部分
<autoCommit>
<maxDocs>10000</maxDocs> <!-- maximum uncommited docs before autocommit triggered -->
<maxTime>15000</maxTime> <!-- maximum time (in MS) after adding a doc before an autocommit is triggered -->
<openSearcher>false</openSearcher> <!-- SOLR 4.0. Optionally don't open a searcher on hard commit. This is useful to minimize the size of transaction logs that keep track of uncommitted updates. -->
</autoCommit>
我读到了你提交大量文档的问题,所以你不能将它们保存在内存中,需要将它们提交到磁盘。但是,在将它们全部编入索引之前,您不希望它们可见。
因此,不是每个X文档都进行显式提交,而是使用 autoCommit 部分,但要确保 openSearcher false 。这样,活动的搜索者将继续指向原始提交点。然后,当您完成所有操作后,请执行完整的手动提交。这些变化应该可见。
请确保您没有autoSoftCommit部分,因为那部分根本没用。那个是想要尽快看到新文档的人(openSearcher设置为true)。