我有一个我正在尝试处理的查询,我搜索了它,但找不到任何答案,我做错了什么,我想搜索的是% 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>我的查询是,name:asd,这是我的查询还是字段类型?谢谢您:)
发布于 2012-11-05 08:16:27
如果你想像%asd%一样搜索,你不需要ngram过滤器...基本上,solr在搜索中对单个字符使用~,对多个字符使用* ...
例如,name:asd~将匹配asda asdb asdc等,而name:asd*将匹配asdasadad asdfgkhjfgkl等,因此您可以使用name: ~asd~来匹配basdf或easdk,使用name:*asd*来匹配aldkaasdsdfsd或<代码>d12
据我所知,这种搜索不需要ngram
https://stackoverflow.com/questions/13210720
复制相似问题