Apache Solrのインストール
はじめに
Apache Solrのインストールについてです。
Solrは便利な全文検索システムです。
様々な機能があって、サイト内検索などに便利です。
フリーワード検索、類似語検索などが高速に行えます。
Solrのインストール
yum install java-1.7.0-openjdk.x86_64 yum install java-1.7.0-openjdk-devel.x86_64 yum install ant.x86_64
次に、Solrをダウンロードします。
wget http://ftp.riken.jp/net/apache/lucene/solr/4.9.0/solr-4.9.0.tgz tar xzf solr-4.9.0.tgz
ダウンロードしたファイル内に、サンプルのファイルがあるので、実行します。
cd solr-4.9.0/example java -jar start.jar
これで起動が確認できます。
コマンドの設定
便利に使うために、
solrをserviceとして登録して、
service solr startというふうに呼び出せるようにします。
起動用のスクリプトを/etc/init.d/solr として作成します。
1 #!/bin/sh 2 # chkconfig: 345 90 90 3 # description: Solr Boot 4 JETTY_HOME_DIR=/usr/local/solr/example/ 5 cd $JETTY_HOME_DIR 6 JAVA="/usr/bin/java" 7 LOG_FILE="/var/log/solr.log" 8 9 KEY=stopkey 10 CORE=solr 11 cd $JETTY_HOME_DIR 12 start() { 13 $JAVA -Dsolr.solr.home=${JETTY_HOME_DIR}${CORE} -DSTOP.PORT=8079 -DSTOP.KEY=$KEY -jar start.jar >> $LOG_FILE 2>&1 & 14 echo "Solr started!" 15 } 16 17 stop() { 18 $JAVA -DSTOP.PORT=8079 -DSTOP.KEY=$KEY -jar start.jar --stop 19 echo "Solr stopped!" 20 } 21 22 case "$1" in 23 start) 24 start 25 ;; 26 stop) 27 stop 28 ;; 29 restart) 30 stop 31 start 32 ;; 33 *) 34 echo "Usage: $0 {start|stop|restart}" 35 exit 1 36 esac
4行目のJETTY_HOME_DIRはsolrをインストールした場所を指定してください。
僕はusr/local/に解凍したフォルダをsolrという名前に変更して配置したのでこのようになっています。
solrは停止するときに、起動時とは違うポートを指定する必要があります。
solrの起動時のdefaultのポートは8983になっていて、停止時のポートは今回8079にしています。
ここまでできたら、
chkconfig --add solr
でsolrをserviceに登録できます。
chkconfig solr on service solr start
で自動起動とserviceコマンドからの起動ができます。
solrを使ってみる
solrのデータ登録と検索を簡単に試してみます。
データの登録
登録するためのxmlファイルを用意します。
lovelive.xml
<add> <doc> <field name="id">1</field> <field name="name">Honoka Kosaka</field> </doc> <doc> <field name="id">2</field> <field name="name">Umi Sonoda</field> </doc> ・ ・ ・ <doc> <field name="id">7</field> <field name="name">Nico Yazawa</field> </doc> <doc> <field name="id">8</field> <field name="name">Eri Ayase</field> </doc> <doc> <field name="id">9</field> <field name="name">Nozomi Tojo</field> </doc> </add>
そして、このファイルをsolrに向かってpostします。
curl 'http://localhost:8983/solr/collection1/update?commit=true&indent=true' --data-binary @lovelive.xml -H 'Content-Type: text/xml'
これでデータが登録されます。
solrではデータをsolrに渡して、それをcommitすることで初めて検索ができるようになります。
solrのcommitは時間がかかるので、普通は複数のデータをsolrに渡してからcommitで一度に書き込みます。
今回はcommit=trueとして、データ渡しとcommitを両方行っています。