我正在对一个solr 5.0集合进行批量索引操作,现在大约有200万个文档。我注意到tlog正在建立并且没有被删除,另外,索引性能变得非常慢。我想知道为什么没有删除tlog。这就是数据目录的样子:
du -sh *
4.0K data
69G index
109G tlog
我尝试了多种变体:
update?commit=true&expungeDeletes=true&openSearcher=true
我在日志文件中看到Solr正在拾取它,但没有任何变化。
solrconfig中的提交设置为:
<autoCommit>
<maxTime>15000</maxTime>
<maxDocs>1500000</maxDocs>
<openSearcher>false</openSearcher>
</autoCommit>
<autoSoftCommit>
<maxTime>900000</maxTime>
<maxDocs>2000000</maxDocs>
</autoSoftCommit>
要记住的一件事是我在索引过程中对软提交进行了注释。此外,这些值非常高,因为这是相对索引较重的集合,具有相当可控的查询,因此提交策略非常轻松。
我重新启动了Solr并且自然而然地开始了,因为它正在重播tlog,不确定它是否会在完全启动后清除它。现在,我觉得Solr保留了一些tlogs以防万一它需要将数据复制到另一个集合,但这是一个独立的实例,并不是真的有必要,另外,因为它比索引文件夹大,我假设尚未提交主索引的项目。是吗?
知道这里发生了什么吗?
答案 0 :(得分:1)
所以我想我会传递一个更新,即使它有点晚了。
我重启了Solr实例,自从tlog必须重播以来,自然需要大约4个小时才能启动。然后他们在提交后被清除。