##環境
- solr v4.2.0
- sunspot 2.1.0
- sunspot_rails 2.1.0
- sunspot_solr 2.1.0
##設定
solr/conf/schema.xml
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer type="query">
<tokenizer class="solr.JapaneseTokenizerFactory" mode="search" userDictionary="lang/userdict_ja.txt"/>
<filter class="solr.JapaneseBaseFormFilterFactory"/>
<filter class="solr.JapanesePartOfSpeechStopFilterFactory" tags="lang/stoptags_ja.txt" enablePositionIncrements="true" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ja.txt" enablePositionIncrements="true" />
<filter class="solr.CJKWidthFilterFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms_q.txt" ignoreCase="true" expand="true" />
<filter class="solr.JapaneseKatakanaStemFilterFactory" minimumLength="4"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="index">
<tokenizer class="solr.JapaneseTokenizerFactory" mode="search" userDictionary="lang/userdict_ja.txt"/>
<filter class="solr.JapaneseBaseFormFilterFactory"/>
<filter class="solr.JapanesePartOfSpeechStopFilterFactory" tags="lang/stoptags_ja.txt" enablePositionIncrements="true" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ja.txt" enablePositionIncrements="true" />
<filter class="solr.CJKWidthFilterFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />
<filter class="solr.JapaneseKatakanaStemFilterFactory" minimumLength="4"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
##queryとindex
検索時とインデックス作成時で設定を分ける
<analyzer type="query">
</analyzer>
<analyzer type="index">
</analyzer>
##solr.JapaneseTokenizerFactory
- Kuromojiを使った形態素解析
- userDictionaryはユーザー辞書を使いたい場合に設定
##solr.JapaneseBaseFormFilterFactory
- 動詞などを基本形に変換する
##solr.JapanesePartOfSpeechStopFilterFactory
- 接続詞とか副詞とか必要なさそうなのを除外
- 除外する内容はtagsで指定したtxtファイルに
##solr.StopFilterFactory
- 「する」「から」「なら」「のみ」とか必要ないものインデックスから除外
- 除外する内容はtagsで指定したtxtファイルに
##solr.CJKWidthFilterFactory
- 全角のローマ字を半角にしたり半角カナを全角にしたり
##solr.SynonymFilterFactory
- 同義語の設定。タマゴと検索したら卵もたまごもタマゴも玉子も検索できるように
- 内容はsynonymsで指定したtxtファイルに
##solr.JapaneseKatakanaStemFilterFactory
- カタカナのみの文字列の最後の長音(ー)を除去
- minimumLengthは文字数。4なら4文字以上のカタカナ
##solr.LowerCaseFilterFactory
-アルファベットを小文字