Solrのオフィシャルページで12 April 2012 – Apache Solr 3.6.0 available っていう事で。

New Kuromoji morphological analyzer tokenizes Japanese text,
producing both compound words and their segmentation. (SOLR-3056)

Solrの日本語対応 -新しく追加されたトークナイザ・トークンフィルタ- | 株式会社ロンウイット
Kuromoji(ピュアJavaでナイスなライセンスの形態素解析エンジン)を試してみる |
んま、前置きはそんな感じにして、MacBook Proにインストールしてさっそく動かしてみます。
■ Tomcat7.0.27のインストール
Tomcatのダウンロードページから apache-tomcat-7.0.27.tar.gz を落としてきて、

# pwd
ln -s apache-tomcat-7.0.27 tomcat
# ls -l | grep tomcat-7
drwxr-xr-x  13 root  wheel  442  4 16 11:24 apache-tomcat-7.0.27
lrwxr-xr-x   1 root  wheel   20  4 16 11:24 tomcat -> apache-tomcat-7.0.27

■ solr.warをTomcatのwebappsに
Solrのダウンロードページから apache-solr-3.6.0.tgz を落としてきて解凍して、

# cp solr.war /usr/local/tomcat/webapps/

■ Tomcatのserver.xml


■ webappsのsolrのWEB-INFのweb.xml



■ exampleのsolrをTOMCAT_HOMEにコピってくる

#Solr configuration

解析機能を動かしてみると type text_ja で↓のようになりました。

上記での text_ja は schema.xml を見ると、下記のようにガッツリ書いてあります。
■ サーチモードがデフォルト
 <tokenizer class=”solr.JapaneseTokenizerFactory” mode=”search”/>
 例) 関西国際空港
■ 基本形にするノーマライズ
 <filter class=”solr.JapaneseBaseFormFilterFactory”/>
 例) 思った → 思う
■ 品詞ごとのSTOP設定が lang/stoptags_ja.txt がお手軽に設定可能
 <filter class=”solr.JapanesePartOfSpeechStopFilterFactory”
 tags=”lang/stoptags_ja.txt” enablePositionIncrements=”true”/>
 例) 食べたからには → 食べる
  助詞-格助詞-連語 はSTOPするという設定
■ 半角カナは全角カナにノーマライズ
 <filter class=”solr.CJKWidthFilterFactory”/>
 例) ガガ→ ガガ

■ STOP Wordが lang/stopwords_ja.txt に100以上ガッツリ
 <filter class=”solr.StopFilterFactory” ignoreCase=”true”
 words=”lang/stopwords_ja.txt” enablePositionIncrements=”true” />
 例) 風と共に → 風
  stopwords_ja.txt の 121行目に “と共に” が入ってる
■ U+30FCの「ー」(長音記号)は除かれる
 <filter class=”solr.JapaneseKatakanaStemFilterFactory” minimumLength=”4″/>
 例) メモリー → メモリ
  ただし、minimumLength=”4″なので ソラー はそのまんま。
■ LowerCase
 <filter class=”solr.LowerCaseFilterFactory”/>
 例) CAT → cat

    <!-- Japanese using morphological analysis (see text_cjk for a configuration using bigramming)

         NOTE: If you want to optimize search for precision, use default operator AND in your query
         parser config with <solrQueryParser defaultOperator="AND"/> further down in this file.  Use
         OR if you would like to optimize for recall (default).
    <fieldType name="text_ja" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="false">
      <!-- Kuromoji Japanese morphological analyzer/tokenizer (JapaneseTokenizer)

           Kuromoji has a search mode (default) that does segmentation useful for search.  A heuristic
           is used to segment compounds into its parts and the compound itself is kept as synonym.

           Valid values for attribute mode are:
              normal: regular segmentation
              search: segmentation useful for search with synonyms compounds (default)
            extended: same as search mode, but unigrams unknown words (experimental)

           For some applications it might be good to use search mode for indexing and normal mode for
           queries to reduce recall and prevent parts of compounds from being matched and highlighted.
           Use <analyzer type="index"> and <analyzer type="query"> for this and mode normal in query.

           Kuromoji also has a convenient user dictionary feature that allows overriding the statistical
           model with your own entries for segmentation, part-of-speech tags and readings without a need
           to specify weights.  Notice that user dictionaries have not been subject to extensive testing.

           User dictionary attributes are:
                     userDictionary: user dictionary filename
             userDictionaryEncoding: user dictionary encoding (default is UTF-8)

           See lang/userdict_ja.txt for a sample user dictionary file.

           See for more on Japanese language support.
        <tokenizer class="solr.JapaneseTokenizerFactory" mode="search"/>
        <!--<tokenizer class="solr.JapaneseTokenizerFactory" mode="search" userDictionary="lang/userdict_ja.txt"/>-->
        <!-- Reduces inflected verbs and adjectives to their base/dictionary forms (辞書形) -->
        <filter class="solr.JapaneseBaseFormFilterFactory"/>
        <!-- Removes tokens with certain part-of-speech tags -->
        <filter class="solr.JapanesePartOfSpeechStopFilterFactory" tags="lang/stoptags_ja.txt" enablePositionIncrements="true"/>
        <!-- Normalizes full-width romaji to half-width and half-width kana to full-width (Unicode NFKC subset) -->
        <filter class="solr.CJKWidthFilterFactory"/>
        <!-- Removes common tokens typically not useful for search, but have a negative effect on ranking -->
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ja.txt" enablePositionIncrements="true" />
        <!-- Normalizes common katakana spelling variations by removing any last long sound character (U+30FC) -->
        <filter class="solr.JapaneseKatakanaStemFilterFactory" minimumLength="4"/>
        <!-- Lower-cases romaji characters -->
        <filter class="solr.LowerCaseFilterFactory"/>


Apache Solr入門 ―オープンソース全文検索エンジン
関口 宏司 三部 靖夫 武田 光平 中野 猛 大谷 純
売り上げランキング: 29354


  1. […] Apache Solr – Solr 4.0 登場 | にょきにょきブログ   Solr3.6でKuromojiを試した時はTomcatを使いましたが、 […]