Solr CJKAnalyzerで日本語文章の検索をする その1 まずはNグラムでいきまっしょぃ

日本語は英語などのように単語が空白で分離されていないので、
インデキシングしたり検索したりするためには、
日本語の文章をなんとかして単語に分割する必要があります。
これを一般にトークナイズ( Tokenize )といいます。


このやりかたには辞書を使う形態素解析方式と
単純に決めた文字数で区切っていくNグラム方式の2つがあるのですが
SolrにはNグラム方式のCJKAnalyzerがバンドルされているので、
まずはこれを使ってみます。


CJKAnalyzerは N = 2 の2グラム(bi-gram)方式なので2文字ずつに区切られます。
"日本語の文章"をトークナイズするとこんな感じになります。
"日本", "本語", "語の", "の文", "文章"


一般的にNグラム方式は形態素解析方式に比べて
再現率が高い一方で精度が低くなりがちなので
目的に合わせて使い分けるのがベターです。
形態素解析方式の使い方や
Nグラム方式との使い分けや組み合わせについては
後日書きたいと思ってます。


ではでは