Apache Solr 4 - 在第一次提交后,索引不会增长

时间:2013-07-14 17:02:17

标签: solr web-crawler hbase nutch

我为Apache Nutch 2.2.1编写了自己的插件,用于抓取所选网站的图片,视频和播客(我的种子中有180个网址)。我把这个元数据放到一个hBase商店,现在我想把它保存到索引(Solr)。我有很多metadatas要保存(网页+图片+视频+播客)。

我在整个过程中使用Nutch脚本bin / crawl(注入,生成,获取,解析......最后是solrindex和dedup)但我有一个问题。当我第一次运行这个脚本时,存储了大约6000个文档(让我们说它是3700个图像文档,1700个用于wegpages,其余文档用于视频和播客)到索引。没关系......

但是...

当我第二次运行脚本时,第三次等等......索引不会增加文档数量(仍然有6000个文档)但是hBase表中存储的行数增加了(有现在97383行)......

你现在问题在哪里吗?我很长时间都在与这个问题作斗争,我不知道......如果它有用,这是我对solrconfix.xml http://pastebin.com/uxMW2nuq的配置,这是我的nutch-site.xml http://pastebin.com/4bj1wdmT < / p>

当我查看日志时,有:

SEVERE: auto commit error...:java.lang.IllegalStateException: this writer hit an OutOfMemoryError; cannot commit 
        at org.apache.lucene.index.IndexWriter.prepareCommitInternal(IndexWriter.java:2668) 
        at org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:2834) 
        at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:2814) 
        at org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:529) 
        at org.apache.solr.update.CommitTracker.run(CommitTracker.java:216) 
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
        at java.lang.Thread.run(Thread.java:722)

1 个答案:

答案 0 :(得分:1)

在自动提交之前,您是否尝试过较低的值?尝试提交每100个文档,以避免在内存中包含太多信息。