solr - 将字段设置为默认搜索字段 [英] solr - set fileds as default search field
问题描述
以下查询对我来说效果很好
http://[]:8983/solr/vault/select?q=VersionComments%3AWhite
返回所有版本注释包含White的文档
我尝试省略字段名称并将其作为默认值,如下所示:在 solr 配置中我写
<!-- 可以指定查询参数的默认值,这些将被请求中的参数覆盖--><lst name="defaults"><str name="echoParams">显式</str><int name="rows">10</int><str name="df">PackageName</str><str name="df">标签</str><str name="df">VersionComments</str><str name="df">VersionTag</str><str name="df">描述</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
的默认搜索字段中.
schema.xml:
solrconfig.xml
<!-- 可以指定查询参数的默认值,这些将被请求中的参数覆盖--><lst name="defaults"><str name="q">*:*</str><str name="echoParams">显式</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
>
The following query works well for me
http://[]:8983/solr/vault/select?q=VersionComments%3AWhite
returns all the documents where version comments includes White
I try to omit the field name and put it as a default value as follows : In solr config I write
<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>
I restart the solr and create a full import.
Then I try using
http://[]:8983/solr/vault/select?q=White
(Where
http://[]:8983/solr/vault/select?q=VersionComments%3AWhite
still works)
But I dont get the document any as answer.
What am I doing wrong?
As far as I know you should only have the <str name="df"></str>
declared once in your requestHandler
Typically what I do is copy all the fields that i want to search into a default search field called text
.
schema.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>
If this is not good enough, you can always search other fields using a dismax
search with the qf
declaration like so:
http://localhost:8983/solr/vault/select/?q= White&defType=dismax&qf=PackageName+Tag+VersionComments+VersionTag+Description+SKU+SKUDesc
这篇关于solr - 将字段设置为默认搜索字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!