我正在尝试抓取数据 Nutch 和索引 Solr 中的数据。
我已按照此网址Using Nutch with Solr和Nutch Wiki Tutorial
中的步骤操作我使用 Solrindex命令
成功编制索引数据 bin/nutch solrindex http://127.0.0.1:8983/solr/ crawl/crawldb -linkdb crawl/linkdb crawl/segments/*
但在结果中我找不到索引数据。
我想要结果如下图像
但我无法在右侧看到任何结果数据。
答案 0 :(得分:1)
如果您希望通过搜索响应返回一些数据,请检查目标字段是否由solr存储,然后您可以使用fl
参数设置要在查询中返回的字段列表(存储字段)名称为值)。您还可以在solrconfig.xml中设置默认fl值。
例如,假设您希望返回content
字段。在schema.xml中,在<fields>
声明中,您应该为此字段选择stored="true"
,如下所示:
<field name="content" type="text" indexed="true" stored="true"/>
然后在solrconfig.xml中,在requestHandler定义中声明default fl params,可以设置特定字段(以空格分隔的字段名称)。如果我们只希望返回存储在content
字段中的数据,那么xml示例(从教程中获取)应如下所示。
<requestHandler name="/nutch" class="solr.SearchHandler" >
<lst name="defaults">
<str name="defType">dismax</str>
<str name="echoParams">explicit</str>
<float name="tie">0.01</float>
<str name="qf">
content^0.5 anchor^1.0 title^1.2
</str>
<str name="pf">
content^0.5 anchor^1.5 title^1.2 site^1.5
</str>
<str name="fl">
url content
</str>
<str name="mm">
2<-1 5<-2 6<90%
</str>
<int name="ps">100</int>
<bool hl="true"/>
<str name="q.alt">*:*</str>
<str name="hl.fl">title url content</str>
<str name="f.title.hl.fragsize">0</str>
<str name="f.title.hl.alternateField">title</str>
<str name="f.url.hl.fragsize">0</str>
<str name="f.url.hl.alternateField">url</str>
<str name="f.content.hl.fragmenter">regex</str>
</lst>
</requestHandler>
您可以在查询中直接覆盖这些默认值。一个常见的用例是在solr查询界面中将“*,score
”放在fl区域中,以便您可以查看所有存储的字段(使用通配符*
)以及结果中的分数。您可能还希望根据目标请求处理程序(应为“/ nutch”)指定查询类型参数(qt)。
有用的链接:
http://wiki.apache.org/solr/SchemaXml#Common_field_options http://wiki.apache.org/solr/CommonQueryParameters#fl