如果您希望某些数据与搜索响应一起返回,请检查目标字段是否由 solr 存储,然后您可以使用fl
参数设置要在查询中返回的字段列表(将存储的字段名称作为值)。您还可以在 solrconfig.xml 中设置默认 fl 值。
例如,假设您希望content
返回字段。在您的 schema.xml 中,在<fields>
声明中您应该可以选择stored="true"
此字段,如下所示:
<field name="content" type="text" indexed="true" stored="true"/>
然后在solrconfig.xml中,在requestHandler定义中声明默认的fl参数,可以设置具体的字段(空格分隔的字段名)。如果我们只想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>
您可以直接在查询中覆盖这些默认值。一个常见的用例是将“ *,score
”放在 solr 查询界面的 fl 区域,以便您可以看到所有存储的字段(使用通配符*
)以及结果中的分数。您可能还想根据目标请求处理程序(应为“/nutch”)指定查询类型参数 (qt)。
有用的网址 :
http://wiki.apache.org/solr/SchemaXml#Common_field_options
http://wiki.apache.org/solr/CommonQueryParameters#fl