いっぽんの猟銃のむこうに (DAIZOじいさんとGun)

ヌルめの技術メモとか。フリーランスやってます (http://acez.jp/)

やっつけでCentOS6.4のTomcat6でSolr4.4を動かす

4.3からまたなんか微妙に色々変わってた気配なので。

以下、最低限でexampleサンプルを動かしてみた手順です。

Tomcatをyumで入れる

・めんどくさいので標準のtomcat6を使う(OpenJDK1.7も一緒に入る)
# yum -y install tomcat6
(javacとかは入らないので必要なら別途java-1.7.0-openjdk-develとか入れる)

■Solr4.4を配置(/usr/local/src/)

・適当なディレクトリに移動
# cd /usr/local/src/

・http://lucene.apache.org/solr/downloads.html から最新版取得、解凍
# wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/lucene/solr/4.4.0/solr-4.4.0.tgz
# tar xzvf solr-4.4.0.tgz

・シンボリックリンクを貼る(/opt/solr/でアクセスできるようにする)
# ln -s /usr/local/src/solr-4.4.0/ /opt/solr
# ls /opt/solr/
CHANGES.txt  NOTICE.txt  SYSTEM_REQUIREMENTS.txt  dist  example
LICENSE.txt  README.txt  contrib                  docs  licenses

Tomcatの設定

・tomcatユーザのアクセス権限を与える
# chown -R tomcat:tomcat /opt/solr/

・Webアプリケーションコンテキストの設定(http://localhost:8080/solr/でアクセス可能に)
# cd /usr/share/tomcat6/conf/Catalina/localhost/
# vi solr.xml
----
<Context docBase="/opt/solr/dist/solr-4.4.0.war" debug="0" crossContext="true">
   <Environment name="solr/home" type="java.lang.String" value="/opt/solr/example/solr" override="true" />
</Context>
----

・logging用のjarファイルをコピー(tomcatで動かす場合は必須)
# cp /opt/solr/example/lib/ext/* /usr/share/tomcat6/lib/

Tomcat起動(お好みで自動起動設定)

# service tomcat6 start
# chkconfig tomcat6 on

あとはWebGUIにアクセス
http://localhost:8080/solr/

f:id:tkizm:20130913154110p:plain

テスト用に適当なデータを格納

f:id:tkizm:20130913154154p:plain

日本語の形態素解析とかできるのを確認(なぜかこれやらないとqueryが出なかった。手でcommitとかしてないから?)

f:id:tkizm:20130913154224p:plain

検索クエリを投げてヒットするのを確認。

f:id:tkizm:20130913154312p:plain


ざっくりとこんな感じです。

ログはそのままのlog4j.propertiesでも出ますが、もしかしたらサンプルのをコピーした方がいいかも。

# cp /opt/solr/example/resources/log4j.properties /usr/share/tomcat6/conf/log4j.properties

確認は以下のコマンドで。なんかうまく動いてないときはチェックしてみてください。

# tail -f /usr/share/tomcat6/logs/catalina.out

ちなみに以下のようなエラーがでる場合、たぶんlogging用のjarとかがtomcatのlibディレクトリに放り込まれてないのが原因。

Sep 11, 2013 1:41:32 PM org.apache.catalina.core.StandardContext start
SEVERE: Error filterStart
Sep 11, 2013 1:41:32 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/solr] startup failed due to previous errors

sl4jとかlog4jはwarファイルに含めるとかできなかったんですかね……