5

在 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 的升级,这部分似乎在此过程中被破坏了。

4

2 回答 2

10

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

<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"/>

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

于 2013-03-06T08:09:28.673 回答
2

您可以使用 edismax 搜索。

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

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

于 2014-11-03T13:41:13.970 回答