Solr 4にて、基本はbi-gramだけど、1文字の検索にも対応させる
昔はbi-gramの場合、CJKTokenizerFactory ってのを使っていて、自分が持っているSolr本にもそう書いてあるが、最近は、StandardTokenizerFactory + CJKBigramFilterFactory を使うらしい。詳しくはggrks。
bi-gramの場合、検索クエリーが1文字の場合に対応出来ない。その辺の詳しい話もネット上に色々あるはず。でも、CJKBigramFilterFactory には uni-gram を出力するオプションもあり、それを使うと1文字の検索に簡単に対応できる。schema.xmlのCJKBigramFilterFactoryを使っているところを以下のようにするだけ。詳しくはドキュメントを参照。
<filter class="solr.CJKBigramFilterFactory" outputUnigrams="true" />
後は、indexを再構築すれば完了。
余談
Solr便利っすね。
タイトルに「Solr 4にて」と書いたけど、CJKBigramFilterFactoryが入ったのは3.6から?