Solr 3.6.1をJBoss AS 7.1.1.Final(Standalone)で動かしてみた

ちょっとSolrの動作確認をしたくなったため、手元にある7.1.1.Finalで動かしてみた。
Standaloneモード試しています。

環境

  • CentOS 6.3
  • JDK 1.7.0_05-b05
  • JBoss AS 7.1.1.Final
  • Solr 3.6.1

参考

http://wiki.apache.org/solr/SolrJBoss#JBoss_7_and_Solr_4.0-ALPHA
https://community.jboss.org/message/643825#643825

ポイントはSolrの設定ファイルやインデックス格納ディレクトリをJBoss ASに伝える方法かな。

Solrの入手&解凍

Solr3.6.1のダウンロードサイトより取得する。

取得したapache-solr-3.6.1.tgzを適当なディレクトリに解凍する。

Solrの設定をサンプルからコピー

今回はサンプルの設定ファイルを使用して稼働確認する。解凍したディレクトリにあるexample/confディレクトリごと任意のディレクトリにコピーする。

mkdir -p /path/to/solr_home
cp -r apache-solr-3.6.1/example/solr/conf /path/to/solr_home

JBoss ASのstandalone.xmlを編集

$JBOSS_HOME/standalone/configuration/standalone.xml を修正する。タグを追加しています。

        <extension module="org.jboss.as.webservices"/>
        <extension module="org.jboss.as.weld"/>
    </extensions>

    <system-properties>
        <property name="solr.solr.home" value="/path/to/solr_home"/>
        <property name="solr.data.dir" value="/path/to/solr_data"/>
        <property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
    </system-properties>
  • solr.solr.homeにはSolrのconfディレクトリをコピーしたディレクトリを設定する。
  • solr.data.dirには、任意のディレクトリを指定する。なお、この設定がない場合はsolr.solr.home/data ディレクトリが自動的に使われるのでなくても良い。
  • URI_ENCODINGをUTF-8に設定しないと、日本語での検索ができなくなるので注意。
  • org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING のtrue設定は不要で良い。これをtrueにすると日本語検索が逆にできなくなるようです。

※なお、JBoss ASの起動オプションで-Dsolr.solr.home=/path/to/solr_home のように設定するのもOK。

solr.warをデプロイ

apache-solr-3.6.1/example/webapps/solr.war をJBoss ASのデプロイディレクトリにコピーすればOK。

cp apache-solr-3.6.1/example/webapps/solr.war $JBOSS_HOME/standalone/deployments/

JBoss ASの起動

cd $JBOSS_HOME/bin
./standalone -b 0.0.0.0 &

とりあえず検証用に直でアクセスするので、-b 0.0.0.0を付けて外部からアクセス可能に指定しています。

Solrの管理画面にアクセス

http://192.175.204.145:8080/solr/admin/ にアクセスして管理コンソールが見えればOK。

とりあえずここまで。