EdgeNGramFilterFactory
例子 abcde 淘宝杭州市政府
各个场景下输出:
tgramfront abc abcd abcde 淘宝杭 淘宝杭州 淘宝杭州市 淘宝杭州市政 淘宝杭州市政府
tgramback cde bcde abcde 市政府 州市政府 杭州市政府 宝杭州市政府 淘宝杭州市政府
bgramfront ab abc abcd abcde 淘宝 淘宝杭 淘宝杭州 淘宝杭州市 淘宝杭州市政 淘宝杭州市政府
bgramback de cde bcde abcde 政府 市政府 州市政府 杭州市政府 宝杭州市政府 淘宝杭州市政府
NGramFilterFactory
gramfront
淘宝杭 宝杭州 杭州市 州市政 市政府 淘宝杭州 宝杭州市 杭州市政 州市政府 淘宝杭州市 宝杭州市政 杭州市政府 淘宝杭州市政 宝杭州市政府淘宝杭州市政府
配置
<fieldType name="tgramfront"class="solr.TextField"positionIncrementGap="100"omitNorms="false"omitPositions="true"> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.EdgeNGramFilterFactory"side="front"minGramSize="3"maxGramSize="20" /> </analyzer> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> </analyzer> </fieldType> <fieldType name="gramfront"class="solr.TextField"positionIncrementGap="100"omitNorms="false"omitPositions="true"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.NGramFilterFactory"side="front"minGramSize="3"maxGramSize="20"/> </fieldType> <fieldType name="tgramback"class="solr.TextField"positionIncrementGap="100"omitNorms="false"omitPositions="true"> <filter class="solr.EdgeNGramFilterFactory"side="back"minGramSize="3"maxGramSize="20"/> </fieldType> <fieldType name="bgramfont"class="solr.TextField"positionIncrementGap="100"omitNorms="false"omitPositions="true" /> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.EdgeNGramFilterFactory"side="front"minGramSize="2"maxGramSize="20"/> </fieldType> <fieldType name="bgramback"class="solr.TextField"positionIncrementGap="100"omitNorms="false"omitPositions="true"/> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.EdgeNGramFilterFactory"side="back"minGramSize="2"maxGramSize="20"/> </fieldType>