前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

TomcatでSolrを使う

この記事はApache Solr入門を参考にしました。http://gihyo.jp/book/2010/978-4-7741-4175-6

環境

OS Mac OS X
Java 1.6.0_26
Solr-src 3.3.0
Tomcat 7.0.14

追加設定

一言でいうとwarをコピーしてsolrのホームディレクトリをTomcatに伝えるだけなんだけど
文字コードの設定など忘れがちなことも忘れずに。

server.xmlを編集

Tomcatのserver.xmlに「useBodyEncodingForURI="true"」を追記する

<connector port="8080" redirectPort="8443" useBodyEncodingForURI="true" />
CharacterEncodingFilterの設定

WarファイルにはCharacterEncodingFilter設定が無いので設定する必要がある。まずはTomcatのフィルターをコピーする。

cd $SOLR-SRC-HOME/solr/src/webapp/src
mkdir filters
sudo cp $CATALINA_HOME/webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java ./filters/

次にweb.xmlを編集

cd $SOLR-SRC-HOME/solr/src/webapp/web/WEB-INF
sudo vi web.xml
  <filter>
        <filter-name>SetCharacterEncodingFilter</filter-name>
        <filter-class>filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
  </filter>
  <filter-mapping>
      <filter-name>SetCharacterEncodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>
warのビルド
cd $SOLR-SRC-HOME/solr/
sudo ant dist
ls dist
apache-solr-3.3-SNAPSHOT.war				apache-solr-dataimporthandler-extras-3.3-SNAPSHOT.jar
apache-solr-analysis-extras-3.3-SNAPSHOT.jar		apache-solr-solrj-3.3-SNAPSHOT.jar
apache-solr-cell-3.3-SNAPSHOT.jar			apache-solr-test-framework-3.3-SNAPSHOT.jar
apache-solr-clustering-3.3-SNAPSHOT.jar			apache-solr-uima-3.3-SNAPSHOT.jar
apache-solr-core-3.3-SNAPSHOT.jar			solrj-lib
apache-solr-dataimporthandler-3.3-SNAPSHOT.jar
sudo cp dist/apache-solr-3.3-SNAPSHOT.war $CATALINA_HOME/webapps/solr.war
Solr.homeの設定

Tomcatの起動オプション等でSolrのホームディレクトリの位置を指定する。

 -Dsolr.solr.home=/usr/local/solr/example/solr

んでTomcatを起動して確認