mysql就像%asd%等效的solr查询

时间:2012-11-03 15:43:19

标签: php mysql solr

我有一个查询,我正在尝试处理,我搜索它但找不到任何答案,我做错了什么,我想搜索的是,%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,是我的查询还是字段类型?谢谢你:))

1 个答案:

答案 0 :(得分:2)

如果您想进行%asd%之类的搜索,则不需要ngram过滤器...基本上,solr使用~表示单个字符,*表示搜索中的多个字符。

e.g name:asd~将与asda asdb asdc匹配,依此类推,而name:asd*将与asdasadad asdfgkhjfgkl匹配,依此类推,因此您可以使用name: ~asd~来匹配basdf或{{对于easdkname:*asd*

,1}}和aldkaasdsdfsd

据我所知,你不需要ngram用于这种搜索