2016-04-27 22 views

回答

1

試試這個

<fieldType name="text" class="solr.TextField" positionIncrementGap="100"> 
      <analyzer type="index"> 
      <tokenizer class="solr.StandardTokenizerFactory"/> 
      <filter class="solr.LowerCaseFilterFactory"/> 
      <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="15" side="front" /> 
     </analyzer> 
    </fieldType> 

與Java

public TokenStream tokenStream(String fieldName, 
        Reader reader) { 
       TokenStream result = new StandardTokenizer(reader); 

       result = new StandardFilter(result); 
       result = new LowerCaseFilter(result); 
       result = new EdgeNGramTokenFilter(result, Side.FRONT,1,20); 
       return result; 
      } 

檢查這個link

+0

謝謝,但我需要在lucene而不是solr。我需要使用lucene – iNikkz

+0

java代碼中的示例。下面提到的鏈接可能會有幫助。分析儀分析儀=新分析儀(){ @Override受保護的TokenStreamComponents createComponents(String fieldName,Reader reader){ Tokenizer source = new StandardTokenizer(VERSION,reader); TokenStream filter = new LowerCaseFilter(VERSION,source); 返回新的TokenStreamComponents(source,filter); } }; [https://lingpipe-blog.com/2014/03/08/lucene-4-essentials-for-text-search-and-indexing/] – vinod