Apache Solrで,(カンマ)の扱いを任意の処理にさせる

Apache Solrのコアを作成したあと,$SOLR/server/solr/birth_3gram.xml/conf/managed-schemaのstringsフィールドの設定を以下のように変更します.(今回はカンマが含まれる文字列をsolrにsplitさせて検索させる方法です)

<fieldType name="strings" class="solr.TextField" multiValued="true">
      <analyzer type="index">
          <tokenizer class="solr.PatternTokenizerFactory" pattern="\s*,\s*"/>
          <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
         <filter class="solr.LowerCaseFilterFactory"/>
     </analyzer>
     <analyzer type="query">
         <tokenizer class="solr.PatternTokenizerFactory" pattern="\s*,\s*"/>
         <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
         <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
         <filter class="solr.LowerCaseFilterFactory"/>
     </analyzer>
 </fieldType>

その後,Analysisで確認すると分割されていることがわかります.

f:id:MitubaEX:20171006020950p:plain

今回はindex, query両方共に適応していますが,どちらかだけしかいらない場合はその都度消します.