php - 更新 Solr 配置以搜索所有字段

标签 php solr

有人可以告诉我如何在所有字段上搜索 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/

相关文章:

php - javascript 问题,通过 <php echo ?> 发布到 facebook API,需要转义 ' and "

mysql - Solr:从 MySQL 持续迁移

mysql - 报告销毁后重建索引花费的时间太长

java - 我在哪里向 SOLR 提交 XML

php - 在 WordPress 中使用 PHP 的 SQL 更新问题

Php Mysql 使用 Id 从 2 个表中删除

php - mysql数据库在php中不显示查询结果

python - 如何使用具有自定义属性的 django-haystack 搜索面?

performance - Algolia 与 Solr 搜索

php - 用于递归结果的 Laravel 查询构建器?例如。 id, parent_id