Lucene Solr更新非常慢

Lucene Solr更新非常慢,lucene,solr,Lucene,Solr,我的数据库中的Solr更新速度非常慢。数据库只有900个文档。我们使用具有以下设置的自动提交,有时自动提交会花费很长时间阻止更新: <autoCommit> <maxDocs>10000</maxDocs> <maxTime>1000</maxTime> </autoCommit> 10000 1000 有900个文档,74秒内可能发生的事情 想法 以下是日志片段: 2010年10月18日上午11:52:46

我的数据库中的Solr更新速度非常慢。数据库只有900个文档。我们使用具有以下设置的自动提交,有时自动提交会花费很长时间阻止更新:

<autoCommit> 
  <maxDocs>10000</maxDocs>
  <maxTime>1000</maxTime>
</autoCommit>

10000
1000
有900个文档,74秒内可能发生的事情

想法

以下是日志片段:

2010年10月18日上午11:52:46 org.apache.solr.core.SolrCore执行 信息:[]webapp=/solr path=/update params={}status=0QTime=59569 2010年10月18日上午11:52:46 org.apache.solr.update.SolrIndexWriter getDirectory

2010年10月18日上午11:53:21 org.apache.solr.core.SolrCore执行 信息:[]webapp=/solr path=/update params={}status=0QTime=33586 2010年10月18日上午11:53:21 org.apache.solr.update.processor.LogUpdateProcessor完成

2010年10月18日上午11:54:40 org.apache.solr.core.SolrCore执行 信息:[]webapp=/solr path=/update params={}status=0QTime=76098 2010年10月18日上午11:54:41 org.apache.solr.update.DirectUpdateHandler2提交

和提交日志:

2010年10月18日上午11:54:00 org.apache.solr.update.DirectUpdateHandler2提交

信息:开始提交(optimize=false,waitFlush=true,waitSearcher=true)

2010年10月18日上午11:54:00 org.apache.solr.search.solrindexearcher

信息:开幕式Searcher@29b003主要

2010年10月18日上午11:54:00 org.apache.solr.update.DirectUpdateHandler2提交

信息:结束\u提交\u刷新

2010年10月18日上午11:54:00 org.apache.solr.search.solrindexearcher

信息:自动加温Searcher@29b003主要来自Searcher@718c93主要 filterCache{lookups=0,hits=0,hittratio=0.00,inserts=512,executions=0,size=257,warmupTime=19294,累计查找=3330661,累计点击=12 5437,累计命中率=0.03,累计插入次数=3207537,累计收回次数=3184094}

2010年10月18日上午11:54:20 org.apache.solr.search.solrindexearcher

信息:自动暖机的结果Searcher@29b003主要 filterCache{lookups=0,hits=0,hittratio=0.00,insert=256,executions=0,size=256,warmupTime=19739,累计查找=3330661,累计点击=12 5437,累计命中率=0.03,累计插入次数=3207537,累计收回次数=3184094}

2010年10月18日上午11:54:20 org.apache.solr.search.solrindexearcher

信息:自动加温Searcher@29b003主要来自Searcher@718c93主要 queryResultCache{lookups=0,hits=0,hittratio=0.00,insert=256,executions=0,size=256,warmupTime=18604,累计查找=3084,累计点击= 996,累计命中率=0.32,累计插入次数=2313,累计逐出次数=0}

2010年10月18日上午11:54:40 org.apache.solr.search.solrindexearcher

信息:自动暖机的结果Searcher@29b003主要 queryResultCache{lookups=0,hits=0,hitratio=0.00,insert=256,executions=0,size=256,warmupTime=19925,累计查找=3084,累计点击= 996,累计命中率=0.32,累计插入次数=2313,累计逐出次数=0}

2010年10月18日上午11:54:40 org.apache.solr.search.solrindexearcher

信息:自动加温Searcher@29b003主要来自Searcher@718c93主要 documentCache{lookups=0,hits=0,hittratio=0.00,inserts=0,executions=0,size=0,warmupTime=0,累计查找=41846,累计点击=33712,cumu 相对命中率=0.80,累计插入次数=8134,累计逐出次数=0}

2010年10月18日上午11:54:40 org.apache.solr.search.solrindexearcher

信息:自动暖机的结果Searcher@29b003主要 documentCache{lookups=0,hits=0,hittratio=0.00,inserts=0,executions=0,size=0,warmupTime=0,累计查找=41846,累计点击=33712,cumu 相对命中率=0.80,累计插入次数=8134,累计逐出次数=0}

2010年10月18日上午11:54:40 org.apache.solr.core.solrcoreregisterSearcher

信息:[]已注册的新搜索者Searcher@29b003主要

2010年10月18日上午11:54:40 org.apache.solr.search.solrindexearcher关闭使用
1000
,您将每秒进行一次提交。每次Solr进行提交时,都会发生一些事情:索引搜索器被关闭并重新打开,缓存被旧缓存预热,一些查询可能会自动启动(请查看solrconfig中的“newSearcher”设置)。在某些情况下,您可能会有重叠提交。如果发生这种情况,Solr通常会非常慢


所以问问自己,你是否真的需要在每一秒都做出承诺。如果是,则最好从“newSearcher”中删除所有查询,因为提交这些查询通常会使它们变得无用。

取决于Solr必须执行的分析类型。。。你能发布schema.xml吗?这没什么特别的——每个文档有十几个字段。5个方面。有趣的是,其中一个搜索者有很长的预热时间,为什么会这样?我假设在提交之前,数据不可用于搜索。因此,逻辑是经常异步应用少量更改。第二,我认为DirectUpdateHandler2似乎可以连续处理更新请求(包括提交)——没有重叠。为什么?“逻辑是经常异步应用少量更改”->这是实时的,在正常情况下绝对没有必要。对于您的第二个问题:问题是索引需要一段时间+预热查询(如果cachesize!=0)=>您将得到很多更新程序=>很快达到这些更新程序的最大值=>性能瓶颈!只需将1000设置为60000,这应该是可以接受的答案。或者,您可以从执行更新的代码中手动提交(SolrServer.commit())。那么就不需要自动提交。