groonga導入済の環境で、mroongaをmecab付きで導入しようとしたところ、ダメっぽい感じでした。
$ groonga > register normalizers/mysql [[-3,1399468383.43181,0.00655889511108398,"cannot find plugin file: </usr/local/Cellar/groonga/4.0.1/lib/groonga/plugins/normalizers/mysql.so>",[["grn_plugin_register","plugin.c",507]]],false] > tokenize TokenMecab "あす" [[-22,1399468387.56808,0.000420808792114258,"[tokenize] unknown tokenizer: <TokenMecab>",[["create_lexicon_for_tokenize","proc.c",3168]]],[]]
調べてみた所、groonga自体がmecab用にビルドされてないとダメな模様。
確認方法として
$ groonga --version |grep mecab $
となんの反応もなければ導入できていません。
...でもgroonga公式のインストールガイドにはmecabの記述がありません。
ソースからビルドするのも手なのですが、後々brew doctor先生に怒鳴られるのが目に見えています。
なんとかしてbrewでやる方法を探さなくては。
そんなわけでネットの海を徘徊し続けた結果、情報を発見。
$ brew edit groonga ... depends_on "mecab" => :optional depends_on "mecab-ipadic" if build.with? "mecab" ...
groongaにmecabオプションの記述がありますね。
というわけで、仕切り直しです。
まずはmecab
$ brew uninstall mecab $ brew uninstall mecab-ipadic $ brew install mecab $ brew install mecab-ipadic
動作確認
$ echo '東京' | mecab 東京 名詞,固有名詞,地域,一般,*,*,東京,トウキョウ,トーキョー EOS
次にgroonga系
$ brew uninstall groonga $ brew uninstall mroonga $ brew install groonga --with-mecab $ brew install https://raw.github.com/mroonga/homebrew/master/mroonga.rb --use-homebrew-mysql --with-mecab
再度確認すると...
$ groonga --version | grep mecab groonga 4.0.1 [darwin13.1.0,x86_64,utf8,match-escalation-threshold=0,nfkc,mecab,msgpack,zlib,lzo,kqueue] configure options: < '--prefix=/usr/local/Cellar/groonga/4.0.1' '--with-zlib' '--disable-zeromq' '--with-mecab' 'CC=clang' 'CXX=clang++' 'PKG_CONFIG_PATH=/usr/local/opt/pcre/lib/pkgconfig' 'PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/usr/local/Library/ENV/pkgconfig/10.9'>
やったぜ!
念のため動作確認です。
$ groonga > register normalizers/mysql [[-3,1399473641.21891,0.000604867935180664,"cannot find plugin file: </usr/local/Cellar/groonga/4.0.1/lib/groonga/plugins/normalizers/mysql.so>",[["grn_plugin_register","plugin.c",507]]],false] > tokenize TokenMecab "隣の" [[0,1399473645.32267,0.00908207893371582],[{"value":"隣","position":0},{"value":"の","position":1}]] > tokenize TokenMecab "隣の客はよく柿喰う客だ" [[0,1399473660.19531,0.0227370262145996],[{"value":"隣","position":0},{"value":"の","position":1},{"value":"客","position":2},{"value":"は","position":3},{"value":"よく","position":4},{"value":"柿","position":5},{"value":"喰う","position":6},{"value":"客","position":7}]]