以下查询对我很有效
http://[]:8983/solr/vault/select?q=VersionComments%3AWhite
返回版本注释包含 White 的所有文档
我尝试省略字段名称并将其作为默认值,如下所示:
在 solr 配置中我写
<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
仍然有效)
但我没有得到任何文件作为答案。
我究竟做错了什么?
最佳答案
据我所知你应该只有 <str name="df"></str>
在您的 requestHandler
中声明一次
通常我所做的是将我想要搜索的所有字段复制到名为 text
的默认搜索字段中。 .
架构.xml:
<copyField source="name_t" dest="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="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
关于solr - 将字段设置为默认搜索字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17927992/