Solr4目前只查看默认的“df”字段,我们如何搜索多个字段?

时间:2013-03-06 08:04:49

标签: solr solr4

在Solr 4中,我看到我们在/select请求处理程序中配置了默认字段“df”:

  <requestHandler name="/select" class="solr.SearchHandler">
    <!-- default values for query parameters can be specified, these
         will be overridden by parameters in the request
      -->
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <int name="rows">10</int>
       <str name="df">id</str>

但是id是我们唯一的文档字段,因此所有查询都默认为“id:my_query”,它总是返回0结果。

如何定义默认情况下应查询哪些字段?

这是从v3到v4的升级,这部分似乎已经被打破了。

2 个答案:

答案 0 :(得分:7)

您可以使用copy field名为“text”的文件,将所有可搜索字段复制到此字段中,并将其指定为默认搜索字段。

<requestHandler name="/select" class="solr.SearchHandler">
    <!-- default values for query parameters can be specified, these
         will be overridden by parameters in the request
      -->
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <int name="rows">10</int>
       <str name="df">text</str>

您可以按如下方式添加要复制到复制字段的字段:

<copyField source="field1" dest="text"/>
<copyField source="field2" dest="text"/>
...
<copyField source="fieldn" dest="text"/>

请注意,“text”是此处的复制字段。

答案 1 :(得分:2)

您可以使用edismax搜索。

请参阅https://cwiki.apache.org/confluence/display/solr/The+Extended+DisMax+Query+Parser

检查qf(查询字段)参数。您可以将多个字段传递给它