微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Apache Nutch 1.17 索引器兔子不工作

如何解决Apache Nutch 1.17 索引器兔子不工作

我正在尝试将抓取的文档推送给兔子。遵循了所有可用的文档。

  1. IndexWriters Mapping
  2. RabbitMQ README

但是,我无法运行 indexer-rabbit。查看日志,甚至没有提到上面的 indexer-rabbit。我只是想在进一步配置之前让它工作。我尝试使用一个小的自定义程序连接到 RabbitMQ。一切正常。

我也在 nutch-site.xml 中包含了索引器。

<property>
  <name>plugin.includes</name>
  <value>protocol-http|urlfilter-(regex|validator)|parse-(html|tika)|index-(basic|anchor)|indexer-rabbit|scoring-opic|urlnormalizer-(pass|regex|basic)</value>
</property>
<property>
  <name>rabbitmq.publisher.server.uri</name>
  <value>amqp://guest:guest@172.17.0.2:5672/</value>
</property>
<property>
  <name>publisher.queue.type</name>
  <value>RabbitMQ</value>
</property>

此外,映射是认的,看起来非常适合测试。

<writer id="indexer_solr_1" class="org.apache.nutch.indexwriter.solr.solrIndexWriter">
  <parameters>
    <param name="type" value="http"/>
    <param name="url" value="http://localhost:8983/solr/nutch"/>
    <param name="collection" value=""/>
    <param name="weight.field" value=""/>
    <param name="commitSize" value="1000"/>
    <param name="auth" value="false"/>
    <param name="username" value="username"/>
    <param name="password" value="password"/>
  </parameters>
  <mapping>
    <copy>
      <!-- <field source="content" dest="search"/> -->
      <!-- <field source="title" dest="title,search"/> -->
    </copy>
    <rename>
      <field source="Metatag.description" dest="description"/>
      <field source="Metatag.keywords" dest="keywords"/>
    </rename>
    <remove>
      <field source="segment"/>
    </remove>
  </mapping>
</writer>
<writer id="indexer_rabbit_1" class="org.apache.nutch.indexwriter.rabbit.RabbitIndexWriter">
  <parameters>
    <param name="server.uri" value="amqp://guest:guest@172.17.0.2:5672/"/>
    <param name="binding" value="false"/>
    <param name="binding.arguments" value=""/>
    <param name="exchange.name" value=""/>
    <param name="exchange.options" value="type=direct,durable=true"/>
    <param name="queue.name" value="nutch.queue"/>
    <param name="queue.options" value="durable=true,exclusive=false,auto-delete=false"/>
    <param name="routingkey" value=""/>
    <param name="commit.mode" value="multiple"/>
    <param name="commit.size" value="250"/>
    <param name="headers.static" value=""/>
    <param name="headers.dynamic" value=""/>
  </parameters>
  <mapping>
    <copy>
      <field source="title" dest="title,search"/>
    </copy>
    <rename>
      <field source="Metatag.description" dest="description"/>
      <field source="Metatag.keywords" dest="keywords"/>
    </rename>
    <remove>
      <field source="content"/>
      <field source="segment"/>
      <field source="boost"/>
    </remove>
  </mapping>
</writer>

有人知道我在这里遗漏了什么吗?

解决方法

事实证明这是我的愚蠢错误。只是一个小问题。我没有在 crawl 命令中添加 index 参数。以前的命令看起来像这样。

./bin/crawl -s ./urls --hostdbupdate --hostdbgenerate --size-fetchlist 20 ./crawl 3

在这个命令中,没有索引参数。所以索引被跳过了。新命令应该是:

./bin/crawl -i -s ./urls --hostdbupdate --hostdbgenerate --size-fetchlist 20 ./crawl 3

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。