2016-06-15 35 views

答えて

1

私はthis_is_for_testingがあなたのインデックス付きのテキストであると仮定し

StandardTokenizerFilterFactoryは、アンダースコアにトークン化されませんあなたがにアンダースコアを変換するPatternReplaceCharFilterFactoryを使用する必要があります。?。スペースは、テキストをトークン化

参照:PatternReplaceCharFilterFactory

<filter class="solr.PatternReplaceFilterFactory" pattern="_" 
    replacement=" " replace="all" /> 

ので、インデックスが

0になります
  1. これは
  2. これをテストするためである
  3. をthis_is_for_testing | | |のために|テスト

分析側でのみ行う必要があります。

1

このジョブでは、solr.WordDelimiterFilterFactoryを使用できます。

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true"> 
    <analyzer type="index"> 
     <tokenizer class="solr.WhitespaceTokenizerFactory" /> 
     <filter class="solr.WordDelimiterFilterFactory" 
      generateWordParts="1" catenateWords="1" 
      generateNumberParts="1" catenateNumbers="0" splitOnNumerics="1" 
      catenateAll="0" splitOnCaseChange="1" 
      stemEnglishPossessive="1" preserveOriginal="1" /> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
    <analyzer type="query"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
    </fieldType> 

enter image description here