Solr4.0のJapaneseTokenizerFactory ( kuromoji ) で記号や特殊文字が捨てられないようにする方法
Solr4.0 の schema.xml(sample) では 以下のようになっていて、このまま text_jaを使っても記号や特殊記号をインデックス化してくれない
このまま使うと記号や特殊記号が消えてしまう
※ lucene-gosenはdefaultで記号を拾います
schema.xml
<fieldType name="text_ja" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="false"> <analyzer> <tokenizer class="solr.JapaneseTokenizerFactory" mode="search"/> </analyzer> </fieldType>
しかし、kuromojiのサイトではキチンと解析できていることがわかる
つまり、できるはず
ということでソース追ってみたら discardPunctuationという設定があった!
JapaneseTokenizerFactory に対して discardPunctuation="false"を与えると記号や特殊記号を拾ってくれるようになる
※ default true
ただし、Solr3.6系ではソースコード上では実装されているが schema.xmlから設定することができない
もし、やるならソースコードを書き換える必要がある
schema.xml
<fieldType name="text_ja" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="false"> <analyzer> <tokenizer class="solr.JapaneseTokenizerFactory" mode="search" discardPunctuation="false" /> </analyzer> </fieldType>
"★","♂","☆" 等の記号が拾われていることがわかる!