やっつけで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/
テスト用に適当なデータを格納
日本語の形態素解析とかできるのを確認(なぜかこれやらないとqueryが出なかった。手でcommitとかしてないから?)
検索クエリを投げてヒットするのを確認。
ざっくりとこんな感じです。
ログはそのままの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ファイルに含めるとかできなかったんですかね……