我正在使用apachenutch+solr构建一个搜索引擎。
我用的是 bin/crawl
爬网+索引的脚本。我已经索引了大约50000个文档,现在,在每一次迭代中 cleaning phase
大约需要6分钟完成(而之前的阶段大约需要2分钟)。
当你看电视的时候 hadoop.log
文件,我可以看到在每次迭代中 indexer.CleaningJob
阶段增加(当前删除的文档数为11700个)。
为什么要花这么长时间才能完成,我能做些什么来解决这个问题?
我会感激任何我能得到的帮助!
1条答案
按热度按时间mv1qrgav1#
有一个不对称的文件被选为索引分别。打扫:
在每个爬网周期中,只索引/更新最后一个段中的文档,因为需要内容(解析的数据和文本)
但是,crawldb中包含的所有404、重复、重定向等都将从索引中删除。虽然也可以使用基于http响应状态的段删除404和重定向,但是一些作业修改crawldb中的状态(例如,基于内容签名检测重复项)。
随着时间的推移,crawldb会增长并变得比单个片段大得多。这会减慢清洁工作的速度。您可以修改bin/crawl脚本来执行删除操作,而不是每个周期都执行。