有人可以告诉我如何在所有字段上搜索 Solr 吗?
这是我当前的 requestHandler,名为“search”并使用 solr.SearchHandler。
<requestHandler name="search" class="solr.SearchHandler" default="true">
<!-- 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>
</lst>
</requestHandler>
看来我可以搜索所有文本字段,但是我需要搜索名为“s_number”的字段,这是一个整数。
我需要使用 DisMax 来搜索所有字段吗?
另外,我需要调整 schema.xml 中的 defaultSearchField 吗?目前是:
<defaultSearchField>text</defaultSearchField>
最佳答案
您正在讨论的 defaultSearchField
参数在 schema.xml 中引用此字段:
<!-- catchall field, containing all other searchable text fields (implemented
via copyField further on in this schema -->
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
如果您再往下看,您应该会看到如下所示的语句:
<copyField source="name" dest="text"/>
<copyField source="summary" dest="text"/>
您可能想要做的是为 s_number
字段添加一个 copyfield 参数,如下所示:
<copyField source="s_number" dest="text"/>
这会将数字字段复制到您的默认搜索字段(文本)中。文本字段是默认搜索术语的“垃圾场”。它的好处是您可以控制如何以及将哪些信息放入默认搜索中。不好的是,您需要为每个默认字段添加 copyField 参数。
关于php - 更新 Solr 配置以搜索所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8340575/