【问题标题】:Solr Text field and String field - different search behaviourSolr 文本字段和字符串字段 - 不同的搜索行为
【发布时间】:2017-08-23 20:05:50
【问题描述】:

我正在开发 Solr 4+。

我的 solr 架构中有几个字段,它们具有不同的 solr 字段类型。

文本字段和字符串字段的搜索是否不同?

因为我正在尝试搜索无法按预期工作的字符串字段(这是几个方面字段的副本字段)。目标字符串字段被索引并存储。

但是,当我更改文本字段(仅索引)的目标字段时,它可以正常工作。

您能说明为什么会发生这种情况吗? solr 中的文本字段和字符串字段在搜索方面到底有什么区别?

【问题讨论】:

    标签: solr lucene solr4 solrnet


    【解决方案1】:

    TextFields 通常附带一个标记器和文本分析,这意味着索引内容被分解为单独的标记,不需要精确匹配 - 每个单词/标记可以单独匹配以确定整个文档是否应该包含在响应中。

    StrFields 不能应用任何标记化或分析/过滤器,只会给出完全匹配的结果。如果您需要应用了分析或过滤器的 StrField,您可以使用 TextFieldKeywordTokenizer 来实现。

    【讨论】:

      【解决方案2】:

      具有合理的通用跨语言默认值的通用文本字段:它使用 StandardTokenizer 进行标记,从不区分大小写的“stopwords.txt”(默认为空)中删除停用词,并减少大小写。仅在查询时,它也应用同义词。

      StrField 类型不被分析,而是逐字索引/存储。

      【讨论】:

        猜你喜欢
        • 2012-11-10
        • 2011-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-15
        • 2011-05-20
        • 2021-09-01
        相关资源
        最近更新 更多