0

下面是我的字段类型,我想在搜索过程中保留空格

 <fieldType name="searchterm" class="solr.TextField" positionIncrementGap="100">
        <analyzer type="index">
            <tokenizer class="solr.WhitespaceTokenizerFactory" />
            <filter class="solr.LowerCaseFilterFactory" />
            <filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="250" />
        </analyzer>
        <analyzer type="query">
         <tokenizer class="solr.WhitespaceTokenizerFactory" />
            <filter class="solr.LowerCaseFilterFactory" />
        </analyzer>
    </fieldType>

例如: input = "alpha beta" 并且我搜索 "alpha" , "beta" 将匹配,但我如何强制不匹配搜索词,如 "alpha eta" (不应该匹配)。我也应该匹配 "eta","pha" 但不匹配 "alpha eta"

4

1 回答 1

0

很高兴知道什么样的应用程序需要这样的搜索:-)。

您可以执行以下操作:

因为newsearchterm分析将以这种方式发生:

alpha beta==> alp, alph, alpha, bet,beta

所以搜索newsearchterm:(alpha AND eta)将不匹配alpha beta

于 2013-06-08T05:07:41.433 回答