rroongaをインストールしたらトークナイザでMecabを使えなくて焦った話

rroonga_re_thb21

最近勢いのあるgroongaを使ってみたいと思い、色々調べてたのですがインデックスの作成はrubyから使えるrroongaでやってみる事に。

ただ最初、yumでgroonga入れて簡単な動作確認をした際にMecabを指定できたのですが、rroongaからtableをつくろうとした際に

….rroonga-3.1.0/lib/groonga/schema.rb:984:in `default_tokenizer=’: unregistered groonga object: name: <“TokenMecab”> (ArgumentError)

とエラーが出てしまい、にっちもさっちも行かなくなったっていう話です。

ぼやいたら神が現れた件

あまりにも謎で、google先生に何回聞いても同じような事象に陥っている人はいない様子。。
これはらちがあかないなーと頭を抱えながらtwitterでなんとなく呟いたところ、、、

ありがとうございます! (*´Д`)

どうやらMecabと連携できるgroongaをインストールする事はできているけども、そのgroongaを見つけられない状態でrroongaをインストールしてしまった様子。

そういえば、 gem install rroonga したとき、めっちゃ時間かかってそれもtweetしてたw

ではrroongaをインストールしなおして、groongaを見つけてくれるようにするか、rroongaが自分でビルドしたgroongaを改めてMecab使えるようにしてやるか。。 はてどうしたものか、と思っていたところ、神が再び、、

ありがとうございます過ぎる! (*´Д`;;;)

またまた、救いの手を差し伸べていただいてしまいました。
実はこの記事、rroongaをインストールする前にもチラっとは見ていたりしたのですが、最速でインストールするにはというタイトルだったため、インストールの速度の話だけだと思って素通りしていたのです。

今回改めてよく読んでみました。 すると、事前にgroongaをインストールしてある場合(Ubuntuなら)libgroonga-devをapt-getしてからインストールするとイイヨ みたく記述されております。。

これですね!(゚∀゚)

CentOSでのgroongaライブラリをもってくる

では今回使っていたCentOSでは何をyumでひっぱってくればいいのでしょうか。 ちょっと見てみました。

※こういう時って何か正攻法があったりするのでしょうか?。。。
yum searchで探してるのですが、他に正しいやり方あるぜって知ってる人いたら教えてください(^o^)

$ yum search groonga
(略)
groonga-debuginfo.x86_64 : Debug information for package groonga
groonga-devel.x86_64 : Libraries and header files for groonga
groonga-doc.x86_64 : Documentation for groonga
groonga-httpd.x86_64 : Groonga HTTP server
groonga-libs.x86_64 : Runtime libraries for groonga
groonga-munin-plugins.x86_64 : Munin plugins for groonga
groonga-normalizer-mysql.x86_64 : MySQL compatible normalizer plugin for groonga
groonga-normalizer-mysql-devel.x86_64 : Development files for groonga-normalizer-mysql
groonga-plugin-suggest.x86_64 : Suggest plugin for groonga
groonga-release.noarch : Groonga release files
groonga-repository.noarch : groonga RPM repository configuration
groonga-server.x86_64 : Groonga server
groonga-server-common.x86_64 : Common packages for the groonga server and the groonga HTTP server
groonga-server-gqtp.x86_64 : Groonga GQTP server
groonga-server-http.x86_64 : Groonga HTTP server
groonga-tokenizer-mecab.x86_64 : MeCab tokenizer for groonga
groonga-tools.x86_64 : Tools for groonga
groonga.x86_64 : An Embeddable Fulltext Search Engine

見てみると、上の方にあるgroonga-devel がそれっぽいですね。 というかdevなんとかってそれしかないですね。

というわけで早速入れてみました。

$ sudo yum install groonga-devel

入った

再びrroongaを入れてみる

$ time sudo gem install rroonga

(略)

Building native extensions. This could take a while...
Successfully installed rroonga-3.1.0
(略)
1 gem installed

real 0m37.139s ← 早いヽ(=´▽`=)ノ
user 0m24.571s
sys 0m4.249s

1回めのインストール時は明らかに10分以上かかっていたのを記憶していましたが、今回はまさに最速な短さでした。

で、実際にこの後rroongaコマンドで トークナイザでTokenMecabを指定し、怒られないでインデックスのテーブル作成に成功しました。
めでたしめでたし。 @ktouさんありがとうございました!
おわり

2013-12-18 | Posted in RubyNo Comments » 


関連記事

Comment





Comment



*