今回は前回に引き続き MeCab Search モジュールの解説をさせていただければと思います。ちなみに前回の記事はこちらです。
Drupal 7 用の MeCab Search モジュールを公開しました 01 概要編
前回は概要的な部分を見たので、今回は具体的なインストール方法と使い方を見ていきます。 まずは要件から。
MeCab Search 利用要件
MeCab Search を使うには以下の 2 つが必要になります。
いずれもインストール方法は環境によりけりなところがあり、ここでご紹介するには少し長めになってしまうので詳細はリンク先をご覧ください。 ここでは Mac でインストールする方法をひとつだけご紹介しておきます。
MeCab のインストール
MeCab のインストールは、 Homebrew が入っていれば以下のコマンドでインストールすることができます。
$ brew install mecab
$ brew install mecab-ipadic
インストールが無事に済めば、 mecab という標準入力を形態素解析するコマンドが使えるようになるはずです。 使い方はたとえばこんな感じ。
$ echo '近江商人の考えを表すことばに三方良しというものがあります' | mecab | head -n6
近江 名詞,固有名詞,人名,姓,,,近江,オウミ,オーミ
商人 名詞,一般,,,,,商人,ショウニン,ショーニン
の 助詞,連体化,,,,,の,ノ,ノ
考え 名詞,一般,,,,,考え,カンガエ,カンガエ
を 助詞,格助詞,一般,,,,を,ヲ,ヲ
表す 動詞,自立,,*,五段・サ行,基本形,表す,アラワス,アラワス
余談ですが、 Mac に Homebrew を入れたりその他 Drupal 環境を整えたりしたい場合は大野の Mac 開発環境整備の記事 がご参考になるかと思います。 そちらもよろしければどうぞ。
php-macab のセットアップ
MeCab がインストールできたら、次にそれを PHP から使うための php-mecab ライブラリをセットアップします。 こちらはファイルをインストールして php.ini に設定する、という流れになります。
インストールについては pear が入っていれば次のコマンドで入れられます。
$ pear channel-discover pecl.opendogs.org
$ pear remote-list -c opendogs
$ pear install opendogs/mecab-beta
パーミッションの関係で入れられない場合は都度 sudo をつけてください。
無事入ったら、有効になっている php.ini に次の 1 行を追加します。
extension=mecab.so
ここまで来れば php-mecab のセットアップも完了です。 念のために以下の php スクリプト( made by 作者の方)を書いて確認してみましょう。
if (extension_loaded(mecab))
echo "mecab loaded :)";
else
echo "something is wrong :(";
ターミナルから実行してみて「 mecab loaded :) 」と表示されれば無事セットアップが済んでいることになります。
MeCab Search のセットアップ
必要な環境が揃ったので、次に MeCab Search モジュールをセットアップします。 全体的な流れは通常のモジュールのインストール方法と同じですが、最初のファイルをダウンロードしてくる部分だけが異なります。
ファイルのダウンロードは、ターミナルを開いて Drupal 7 のモジュールディレクトリに移動した後、次の Git コマンドを使って行います。
git clone --branch 7.x-1.x http://git.drupal.org/sandbox/gh640/2240267.git mecabsearch
コマンドが無事成功すると「 mecabsearch 」というモジュールディレクトリができているので、あとは通常のモジュール有効化処理を行ってください。 モジュールのインストール方法については Drupal のモジュールのインストール方法の「 2. コントリビュートモジュール」のところなどを参考にしてみてください。
MeCab Search の使い方
セットアップが済んだら、設定を行って実際に使ってみましょう。
Drupal 7 のプロジェクトを立ち上げて、ブラウザからパス admin/config/search/mecab にアクセスします。
するとチェックボックスが 2 つある画面が表示されるので、一度にひとつずつチェックを入れて保存して、最終的に両方のチェックボックスがオンになった状態にします。 画面を更新してチェックボックスがオンになった状態が維持されていれば MeCab Search の一連のセットアップ手続きは完了です。
ちなみに、 MeCab や php-mecab のセットアップがうまくいっていない場合に Drupal 内でレポートを出すようにはしていないため、 MeCab や php-mecab の動作チェックは Drupal 上で行うのではなく、個別に行っておいてください。
確認方法
検索のインデクシングを行えば、 MeCab Search によって実際に Drupal デフォルトの検索機能が改善されることが確認いただけます。 phpMyAdmin なんかを使うと、 Search モジュール関連のテーブルの中身が変わるのが確認していただけるかと思います。
ちなみにこれは MeCab Search のお話ではなく Drupal の Search モジュールと cron のお話ですが、実際のインデクシング処理は Drupal の cron によって行われるため、 MeCab Search による検索ロジックの変更が検索パフォーマンスに反映されるのは最初の cron 以降、となります。
また、既存の検索インデックスを MeCab Search のもので上書きしたい場合は 検索のインデックスのやり直し処理が必要となってきます。 もし検索インデックスを即座に張り直したければ、 drush を使えば次のコマンドで行うことなんかもできますが、この作業は既存のインデックスを上書きしてしまうので、実行する際は処理内容をよく理解した上で実行していただければと思います。
$ drush search-reindex --immediate
以上です。
少し駆け足になりましたら、以上、スタジオ・ウミの MeCab Search モジュールのご紹介でした。
この MeCab Search については今後も引き続きコントリビュートモジュール化できるように進めていき、またここでも経過をご報告していければと思います。 開発者の方には Drupal.org の方でコメントやアドバイスなどいただけますと幸いです。
募集しています
スタジオ・ウミは「Drupal」に特化したサービスを提供する Drupal のエキスパートチーム。
フルリモート&フレックス制だから、働く場所を選ばず時間の使い方も自由です。
そんなワークライフバランスの整った環境で、当ブログに書かれているような
様々な技術を共に学びながら、Drupalサイト開発に携わってみたい方を募集しています。
まずはお話だけでも大歓迎!ぜひお気軽にご連絡ください。