【问题标题】:Solr - How to search in all fields without passing query field?Solr - 如何在不传递查询字段的情况下搜索所有字段?
【发布时间】:2015-07-12 04:38:28
【问题描述】:

我已经尝试如下,

<field name="collector" type="text_general" indexed="true" stored="false"  multiValued="true" />

并将我的所有字段复制到 copyField 如下,

<copyField source="fullname" dest="collector"/>
<copyField source="email" dest="collector"/>
<copyField source="city" dest="collector"/>

我还把所有 copyField 标签放在下面

<fields>

</fields>

标签。但我无法搜索所有领域。我必须在查询之前通过 fullname

q=fullname:Mayur

我要搜索,

q=Mayur

我应该搜索所有包含Mayur字的字段。

请帮帮我

【问题讨论】:

  • 如果你搜索q=collector:Mayur,你会得到正确的结果吗?这将有助于确定问题是“收集器”字段本身,还是只是将“收集器”配置为默认搜索字段。

标签: php solr lucene


【解决方案1】:

这已在 solr 7 中被弃用: https://lucene.apache.org/solr/guide/7_0/major-changes-in-solr-7.html 推荐使用df参数。

【讨论】:

    【解决方案2】:

    确保字段已存储=true

    <field name="field_name" type="text_general" indexed="true" stored="true"/>
    

    如果字段的值在搜索过程中应该是可检索的,则为真。

    使用默认搜索字段: Solr 在解析查询时使用 来识别应该是哪个字段名 在未使用显式字段名称的查询中搜索。

    <defaultSearchField>collector</defaultSearchField>
    

    在您的 schema.xml 中

    【讨论】:

    • 非常感谢!!它通过更改“stored=true”来工作。
    猜你喜欢
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    相关资源
    最近更新 更多