SOLR案例内部不敏感

时间:2016-12-07 11:59:51

标签: solr

我在托管架构中有一个如下所示的字段:

<field name="Title" type="strings">
        <analyzer type="index">
            <tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
        <analyzer type="select">
            <tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
</field>

如果我搜索 spiderman 这个词,我会得到15个结果。然而,当我搜索(标题:蜘蛛侠)时,我得到0结果。我需要能够在查询中执行子组,因此第一个选项不是一个选项。我错过了一些明显的东西吗?

同样搜索 SpiderMan 会返回15个结果,但即使使用模糊搜索和标题(Title:spiderman~),我也只能得到1个结果。

1 个答案:

答案 0 :(得分:1)

在schema.xml文件中添加这些条目。 定义如下所示的fieldType:

<fieldType name="title" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" preserveOriginal="1" catenateAll="1" splitOnCaseChange="0"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>

定义如下字段:

<field name="title" type="title" indexed="true" stored="true"/>