1, 用solr连接solr服务器时,如果你是执行查询动作,那么推荐使用的是CommonsHttpSolrServer,如果你是执行更新操作,那么推荐使用的是StreamingUpdateSolrServer,后者是会将所有的documents缓存在本地,然后一次性写入打开的HTTP连接中,并且是一个线程安全的类。
值得注意的一点是,StreamingUpdateSolrServer在执行update语句后,不需要commit,只需要在solr服务器的solrConfig.xml配置文件中加入下述自动提交的片段,当满足maxDocs或者maxTime这两个条件之一时,客户端就会触发自动提交动作,将缓存中的documents一次性提交到solr服务器的HTTP连接中去。
<
updateHandler
class
="solr.DirectUpdateHandler2"
>
<autoCommit>
<maxDocs>10000</maxDocs>
<maxTime>1000</maxTime>
</autoCommit>
</updateHandler>