Mecabに文字列を投げて「足」「つぼ」に分解することはできた。続いてMroongaでやってみる。
ActiveRecordを通さず、MySQLから直接実行してみると下記のようなエラーが。
[tokenize] nonexistent tokenizer: <TokenMecab>:
Mecabを認識していないようなメッセージだ。辞書を追加はしたが認識しなくなるとはどういうことだ?と思いつつ、
Mecabに読み込ませたユーザー辞書の設定を消してみるとエラーはでなくなった。
ん~、やっぱこれが原因かと首をかしげているとひらめいた。
ユーザー辞書のおき場所が一般ユーザーのホームディレクトリだったがMySQLはrootで起動するため所有者の違うファイルが読めなったのだろう。
っということで、ユーザー辞書を /usr/lib64/mecab/dic/ipadic/goy.dic に移動し、所有者、権限はそれぞれroot:rootの0644にした。
MySQLを再起動し、再度形態素解析してみると・・・、
mysql> SELECT mroonga_command("tokenize TokenMecab '足つぼマッサージ'"); +---------------------------------------------------------------------------------------------------------+ | mroonga_command("tokenize TokenMecab '足つぼマッサージ'") | +---------------------------------------------------------------------------------------------------------+ | [{"value":"足","position":0},{"value":"つぼ","position":1},{"value":"マッサージ","position":2}] | +---------------------------------------------------------------------------------------------------------+
今度はいけた。ActiveRecordを通してももちOK。
関連記事:
Mecabの辞書に単語を登録する方法
0 件のコメント:
コメントを投稿