Sennaをインストール

Sennaのインストール

(参考)http://www24.atwiki.jp/redcloud/pages/20.html

mysqlユーザの作成

# groupadd mysql
# useradd -g mysql -s /sbin/nologin mysql

ncurses-develパッケージのインストール

# yum -y install ncurses-devel

mecab本体+mecab辞書インストール

mecab本体

$ wget http://downloads.sourceforge.net/project/mecab/mecab/0.98/mecab-0.98.tar.gz?use_mirror=jaist
$ tar zxvf mecab-0.98.tar.gz
$ cd mecab-0.98
$ ./configure --prefix=/usr/local --with-charset=utf8
$ make
$ sudo make install

mecab辞書

$ wget http://downloads.sourceforge.net/project/mecab/mecab-ipadic/2.7.0-20070801/mecab-ipadic-2.7.0-20070801.tar.gz?use_mirror=jaist
$ tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --prefix=/usr/local --with-mecab-config=/usr/local/bin/mecab-config --with-charset=utf8
$ make
$ sudo make install

mecabがちゃんと入ったか確認
mecab -v
結果)mecab of 0.95

例えば
mecab
と打つと入力画面に遷移するので、
すもももももももものうち
と入力してエンターで、結果を返してくれる。
(参考)http://d.hatena.ne.jp/kamipo/20100821/1282376251

※ServersManでは起きずに、さくらVPSで発生
libmecab.so.1が無いエラーが起きた場合。。
error while loading shared libraries: libmecab.so.1: cannot open shared object file: No such file or directory

libmecab.so.1は /usr/local/lib/libmecab.so.1にあるが、標準設定では/usr/loca/lib/配下のライブラリが読まれないような設定になっている。
ので、/etc/ld.so.confを編集して、
ldconfigを実行する。
vi /etc/ld.so.conf

下記を追記
/usr/local/lib
ldconfig

sennaインストール

$ wget http://osdn.dl.sourceforge.jp/senna/33763/senna-1.1.4.tar.gz
$ tar zxvf senna-1.1.4.tar.gz
$ cd senna-1.1.4
$ ./configure --prefix=/usr/local --with-mecab-config=/usr/local/bin/mecab-config
$ make
$ sudo make install

sennaのバージョンを確認。
senna-cfg --version

mysql+tritonn本体インストール

$ wget http://osdn.dl.sourceforge.jp/tritonn/36449/tritonn-1.0.12-mysql-5.0.67.tar.gz
$ tar zxvf tritonn-1.0.12-mysql-5.0.67.tar.gz
$ cd tritonn-1.0.12-mysql-5.0.67
$ ./configure --prefix=/usr/local --with-charset=utf8 --with-extra-charsets=all --with-mysqld-user=mysql --with-readline --with-innodb --enable-local-infile --with-senna=/usr/local --with-mecab=/usr/local
$ make
$ sudo make install

初期設定

$ cd /usr/local/bin/
$ sudo ./mysql_install_db --user=mysql
$ sudo cp -p /usr/local/share/mysql/my-small.cnf /usr/local/etc/my.cnf
$ cd /usr/local
$ sudo chown -R mysql.mysql var

起動・停止確認

$ cd /usr/local/bin/
$ sudo ./mysqld_safe --user=mysql &
$ sudo ./mysqladmin -u root shutdown

起動スクリプト作成、自動起動設定(サービス化)

$ cd <tar展開先>
$ sudo cp -p support-files/mysql.server /etc/init.d/mysqld
# cd /etc/init.d
# chown root.root mysqld
# chmod 755 mysqld
# chkconfig --add mysqld
# service mysqld start
# service mysqld stop

sennaの後継groongaのインストール方法も一応(試してないです)

groonga 1.0.0をインストール

cd /usr/local/src
wget http://groonga.org/files/groonga/groonga-1.0.0.tar.gz
tar xvzf groonga-1.0.0.tar.gz 
cd groonga-1.0.0
./configure --prefix=/usr && make && make install

groonga-0.7.6のインストール。

sudo chown kamipo /usr/local/{,*}
sudo aptitude install build-essential pkg-config
sudo aptitude install mecab libmecab-dev mecab-ipadic-utf8
cd /usr/local/src
wget http://groonga.org/files/groonga/groonga-0.7.6.tar.gz
tar zxvf groonga-0.7.6.tar.gz
cd groonga-0.7.6
./configure && make && make install

/usr/localにパスを通す
PATH=$PATH:/usr/lib
export PATH


例えばこういうテーブルだったとすると

+---------------------+----------+------+-----+---------+----------------+
| Field               | Type     | Null | Key | Default | Extra          |
+---------------------+----------+------+-----+---------+----------------+
| clip_bookmark_code  | int(11)  | NO   | PRI | NULL    | auto_increment | 
| site_url            | longtext | YES  |     | NULL    |                | 
| bookmark_count      | int(11)  | YES  |     | NULL    |                | 
| bookmark_genre_code | int(11)  | YES  | MUL | NULL    |                | 
| site_name           | longtext | YES  |     | NULL    |                | 
| site_comment        | longtext | YES  |     | NULL    |                | 
| tag                 | longtext | YES  |     | NULL    |                | 
| data_acquire_date   | datetime | YES  | MUL | NULL    |                | 
+---------------------+----------+------+-----+---------+----------------+

サイト名と、サイトコンテンツで全文検索を行いたいとすると、
下記のようにindexを張る。

create fulltext index clip_bookmark_name_comment on clip_bookmark (site_name,site_comment);

で、検索します。

select * from clip_bookmark where match(site_name,site_comment) against ('ファッション');

あと、show senna statusで状態を調べる。