0

我有一个我正在尝试处理的查询,我搜索了它但找不到任何答案,我做错了,我想要搜索的是,%asd%,但我得到的是 asd% 结果而不是它,

我的字段类型是这个,

<fieldType name="text_general_edge_ngram" class="solr.TextField" positionIncrementGap="100">
        <analyzer type="index">
            <tokenizer class="solr.LowerCaseTokenizerFactory"/>
            <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.LowerCaseTokenizerFactory"/>
        </analyzer>
    </fieldType>

我的查询是名称:asd,是我的查询还是字段类型?谢谢你 :)

4

1 回答 1

2

如果您想进行类似的搜索%asd%,则不需要 ngram 过滤器...基本上 solr在其搜索中~用于单个字符和多个字符...*

eg name:asd~will matchasda asdb asdc等等 while name:asd*will matchasdasadad asdfgkhjfgkl等等 所以你可以使用name: ~asd~to match basdforeasdkname:*asd*for aldkaasdsdfsdoroippopasdoppm

据我所知,您不需要 ngrams 进行这种搜索

于 2012-11-05T00:16:27.483 回答