【问题标题】:solr search, avoid defaultSearchFieldsolr 搜索,避免使用 defaultSearchField
【发布时间】:2010-11-24 02:45:00
【问题描述】:

我有一个 solr 搜索问题,目前我们的架构设置如下

<field name="trading_name" type="trading_name" indexed="true" stored="false" required="true" multiValued="false" omitNorms="true" />
<field name="trading_name_notoken" type="string" indexed="true" stored="false" required="true" multiValued="false" omitNorms="true" />
...
<copyField source="trading_name" dest="trading_name_notoken" />
...
<defaultSearchField>trading_name</defaultSearchField>
...
<fieldType name="trading_name" class="solr.TextField" positionIncrementGap="100">
 <analyzer>...

我想搜索 trading_name_notoken 字段而不是 trading_name 字段,我应该如何构建我的搜索查询?

干杯

詹姆斯

【问题讨论】:

    标签: search solr field


    【解决方案1】:

    使用df(默认字段)参数:

    q=some query&df=trading_name_notoken
    

    【讨论】:

    • 使用 df 不会返回任何搜索结果...有什么想法吗?
    • 忘记字符串类型搜索区分大小写
    • 有没有办法在查询中指定不区分大小写的搜索?或者我是否必须修改架构以具有允许不敏感搜索的字段?
    • @James:区分大小写取决于每个字段类型。
    • 我想对字符串字段类型不区分大小写,可以吗?干杯。
    【解决方案2】:

    我在 SOLR 中添加了一个额外的字段,其中包含小写版本的 trading_name,希望它能解决我的问题

    【讨论】:

      【解决方案3】:

      您所需要的只是一个分析器,它可以将该字段中的术语小写。看看这个LowerCaseTokenizerFactory

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-28
        • 2013-05-02
        • 2019-10-21
        • 1970-01-01
        • 2017-03-26
        • 2014-05-13
        • 1970-01-01
        相关资源
        最近更新 更多