もうMySQLのLIKE検索だけはいやなんじゃーー!と思い続けて幾星霜。
SennaとかHyper Estraierとかいいなーとか横目で見つつ、そんなのを使う機会もなかったけど。elasticsearchっていうのが最近の全部検索ではイケてるしヤバいということで導入してみる。
実はWordPressに入れたかったのだけど、elasticsearchのWordPressプラグインがこれまたイケてるしヤバいコードだったので初めて使ってみようという気になったのである。実はWordPressを使い続けて幾星霜、初めてプラグインのコード見て「こりゃすげぇ」「使ってみてえ」って思ったのである。
OSはCentOS release 6.4 (Final)
elasticsearchのソース入手
この手の新し目のプログラムはyumリポジトリに入ってないので開発元のダウンロードを使う。
ダウンロードページにRPMがあるので迷わずチョイス。その前にJavaが入ってない場合はインストール
http://www.elasticsearch.org/download/
http://www.oracle.com/technetwork/java/javase/downloads/index.html
#rpm -ivh jdk-7u25-linux-x64.rpm [root@server rpm]# rpm -ivh jdk-7u25-linux-x64.rpm Preparing... ########################################### [100%] 1:jdk ########################################### [100%] Unpacking JAR files... rt.jar... jsse.jar... charsets.jar... tools.jar... localedata.jar... #rpm -ivh elasticsearch-0.90.2.noarch.rpm [root@server rpm]# rpm -ivh elasticsearch-0.90.2.noarch.rpm Preparing... ########################################### [100%] 1:elasticsearch ########################################### [100%] Starting elasticsearch: [ OK ]
RPMでインストールすると、elasticsearchというユーザーが作られてそのユーザー権限で実行される。
[root@server rpm]# tail -1 /etc/passwd elasticsearch:x:498:499:elasticsearch user:/usr/share/elasticsearch:/sbin/nologin [root@server rpm]# ps auwx|grep elastic 498 10661 3.2 4.2 3356984 167156 ? Sl 13:15 0:05 java -Xms256m -Xmx1g -Xss256k -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Delasticsearch -Des.pidfile=/var/run/elasticsearch/elasticsearch.pid -Des.path.home=/usr/share/elasticsearch -cp :/usr/share/elasticsearch/lib/elasticsearch-0.90.2.jar:/usr/share/elasticsearch/lib/*:/usr/share/elasticsearch/lib/sigar/* -Des.default.path.home=/usr/share/elasticsearch -Des.default.path.logs=/var/log/elasticsearch -Des.default.path.data=/var/lib/elasticsearch -Des.default.path.work=/tmp/elasticsearch -Des.default.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.ElasticSearch
起動に関するオプション設定は/etc/sysconfig/elasticsearchで設定できる。任意のユーザー権限で起動させてやりたければES_USERを変更するなど。
日本語を使えるようにする
日本語検索に対応するようにkuromojiというelasticsearchのプラグインをインストールする。
/usr/share/elasticsearch/bin
にpluginコマンドが入っているので*1、プラグインを下記のコマンドでインストールする。
[root@server ~]# /usr/share/elasticsearch/bin/plugin -install elasticsearch/elasticsearch-analysis-kuromoji -> Installing elasticsearch/elasticsearch-analysis-kuromoji... Trying https://github.com/elasticsearch/elasticsearch-analysis-kuromoji/zipball/master... (assuming site plugin) Downloading .....DONE Plugin installation assumed to be site plugin, but contains source code, aborting installation...
・・・ありゃ。失敗した。バージョンが必要みたい。1.4.0が最新のようなので
[root@server ~]# /usr/share/elasticsearch/bin/plugin -install elasticsearch/elasticsearch-analysis-kuromoji/1.4.0 -> Installing elasticsearch/elasticsearch-analysis-kuromoji/1.4.0... Trying http://download.elasticsearch.org/elasticsearch/elasticsearch-analysis-kuromoji/elasticsearch-analysis-kuromoji-1.4.0.zip... Downloading ..................................................................................................................................................................................................................DONE Installed analysis-kuromoji
<続く(つもり)>
*1:OSによって違うだろうけど