使い方
- リポジトリをクローンしてmecab_posgresqlディレクトリで
vagrant up
するだけ - リポジトリ: https://github.com/roana0229/vagrant-files.git
できるようになること
- postgresqlでmecabを使った日本語全文検索
ソース
- Vagrantfile
- build.sh(このスクリプトで環境を作る)
- config(コマンドラインからファイルの特定の部分を編集してもいいかもしれませんが、面倒だったので最低限必要なファイルを置いてます)
Vagrantfileの内容
- centos6.5 64bit
(http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.5-x86_64-v20140504.box) - public_network 192.168.0.11 bridge: en0: Wi-Fi (AirPort)
- private_network 192.168.56.11
※必要に応じて編集してください
build.shの内容をざっくりと
- postgresql9.3,java,rubyをインストール
- config内のファイルを使ってiptableとpostgresqlの設定
- postgresqlのユーザ,DBを作成
user: testuser, pass:testuser, スーパーユーザー,ロール作成、ログイン,DB作成権限
db: testdb, オーナー:testuser, 文字コード:UTF8 - 環境変数にpostgresqlを追加
- mecab-0.996, 辞書, textsearch-jaをインストール(ここで結構詰まりました、下に詰まった部分をメモっています)
- 全文検索のテストコマンド実行
postgresql, mecabの環境構築で詰まったことメモ
- language "C" does not exist
postgresql9.1?辺りから、pg_languageテーブルにあるCのlannameが C > c に変わっているみたいです。
なので、sql文の該当する部分を全置換してます。
sed -i "s/'C'/'c'/g" /usr/local/postgresql-9.3.5/contrib/textsearch_ja-9.0.0/textsearch_ja.sql
- checking for mecab-config... no
mecabのインストールが成功して、ssh接続してから同じコマンドを実行すると成功するのですが、build.sh内に記述すると怒られる。。
なのでオプションで対応しました。
--with-mecab-config=/usr/local/bin/mecab-config
- libmecab.so.2: cannot open shared object file
共有ライブラリがシステムに認識されていないので、追記してリロード
echo '/usr/local/lib' >> /etc/ld.so.conf #追記
ldconfig #リロード