【问题标题】:How to deep crawl with nutch如何用 nutch 进行深度爬行
【发布时间】:2016-05-03 16:06:24
【问题描述】:

我目前正在爬取 28 个网站(小型、小型、大型),并且爬取生成了大约 25MB 的数据。我正在使用 Elasticsearch 进行索引,并使用 edge_n-gram 自动完成策略。经过一些测试,似乎我需要更多数据来创建更好的多词(短语)建议。我知道我可以简单地抓取更多网站,但有没有办法让 Nutch 完全或尽可能多地抓取每个网站,以通过edge_n_grams 创建更多数据以提供更好的搜索建议?

或

这甚至是一个失败的原因吗?无论我有多少数据,通过记录用户搜索查询来创建更好的多词建议的最佳方法是什么?

【问题讨论】:

  • 还可以看看 ES Completion Suggester 作为 ngram 的更好替代品,尤其是在短语建议方面。

标签: nutch search-suggestion


【解决方案1】:

您总是可以增加要抓取的链接数量,如果您使用bin/crawl 命令,您可以增加迭代次数或修改脚本并增加sizeFetchlist 参数(https://github.com/apache/nutch/blob/master/src/bin/crawl#L117 )。此参数仅用作常规bin/nutch 脚本中的topN 参数。

请记住,此选项在 2.x 分支上也可用。

您想要完成什么样的建议?在我前段时间开发的一个应用程序中,我们使用了两种方法的组合(我们使用 Solr 而不是 elasticsearch,但本质是相同的)我们在单独的集合/索引中为用户查询编制索引,并在此配置了 @987654326 @(Solr 相当于 ES 的 edge_n_grams)这提供了一些基于用户已经搜索过的基本查询建议。当使用这种方法找不到建议时,我们会尝试根据爬取内容的内容建议单个术语,这需要在前端进行一些 javascript 调整。

不确定在网页的整个文本内容上使用edge_n_grams 是否会有帮助,主要是因为会为整个内容创建 NGram,并且由于匹配项很多,建议不会那么相关,但我不知道您的具体用例。

【讨论】:

  • 感谢您的回答,它确实给了我一些尝试的机会。我知道 edge_n_gram 策略不是最好的,但它才刚刚开始,最终将采用日志记录
【解决方案2】:

如果你打算爬取带有topN参数的命令,那么你可以使用http://big-analytics.blogspot.com.au/2016/05/building-apache-nutch-job-running.html

在最新的 Apache Nutch 中添加抓取代码并重建 nutch.job 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多