3

以下查询对我很有效

http://[]:8983/solr/vault/select?q=VersionComments%3AWhite

返回版本注释包含 White 的所有文档

我尝试省略字段名称并将其作为默认值,如下所示:在 solr config 我写

<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">PackageName</str>
   <str name="df">Tag</str>
   <str name="df">VersionComments</str>
   <str name="df">VersionTag</str>
   <str name="df">Description</str>
   <str name="df">SKU</str>
   <str name="df">SKUDesc</str>
 </lst>

我重新启动 solr 并创建一个完整的导入。
然后我尝试使用

 http://[]:8983/solr/vault/select?q=White  

(在哪里

 http://[]:8983/solr/vault/select?q=VersionComments%3AWhite

仍然有效)

但我没有得到任何文件作为答案。
我究竟做错了什么?

4

1 回答 1

14

据我所知,你应该只<str name="df"></str>在你的requestHandler

通常我所做的是将我想要搜索的所有字段复制到一个名为text.

架构.xml:

<copyField source="name_t" dest="text"/>

solrconfig.xml

<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="q">*:*</str>
   <str name="echoParams">explicit</str>
   <int name="rows">10</int>
   <str name="df">text</str>
</lst>
</requestHandler>

如果这还不够好,您始终可以使用dismax带有qf声明的搜索来搜索其他字段,如下所示:

http://localhost:8983/solr/vault/select/?q= White&defType=dismax&qf=PackageName+Tag+VersionComments+VersionTag+Description+SKU+SKUDesc

于 2013-07-29T16:21:47.050 回答