在solr中,有硬提交和软提交两种方式索引数据:
-
硬提交:solrService.commit()
其中硬提交是提交数据持久化到磁盘里面,并且能够查询到这条数据。
按照下面的配置就会使用solr的自动硬提交功能,就不用我们自己手动提交。
<autoCommit>
<!--表示软提交达到1万条的时候会自动进行一次硬提交-->
<maxDocs>10000</maxDocs>
<!--表示软提交10秒之后会执行一次硬提交-->
<maxTime>10000</maxTime>
<!--true表示每一次硬提交都开启一个新的Searcher-->
<openSearcher>false</openSearcher>
</autoCommit>
-
软提交: solrService.commit(true,true,true)
其中软提交是提交数据到内存里面,并没有持久化到磁盘,但是他会把提交的记录写到tlog的日志文件里面
下面就是自动软提交的配置,不需要自己维护提交(默认没有开启):
<autoSoftCommit>
<!--5秒执行一次软提交-->
<maxTime>5000</maxTime>
</autoSoftCommit>
**注意:**如果我们索引了数据并且没有做任何提交,它也会在tlog日志文件中做记录。并且在正常关闭solr 服务的时候,solr会自动执行一次硬提交,在solr 重启的时候会自动加载tlog的日志文件。