Jan 31, 2011

Apache Solr 1.4 インストール on Tomcat

lucene-ja か、cmecab-java のどちらがいいか悩ましい。

検索エンジンの最新版を追わないのであれば、
JNI バインディングじゃない lucene-ja の方が好み。
でも、最新版を追いたくて、自分でメンテナンスする手間を省きたければ、
cmecab-java ってところか。

パフォーマンスは、両方の環境を作って比較するしかないかな。



環境:
CentOS 5.5 i386 on VMware Fusion3
Java6 SDK
Apache Ant
Apache Tomcat 5.5

インストールするもの:
Apache Solr 1.4
lucene-ja 2.0 + sen 1.2.2.1
cmecab-java + mecab 0.98


Apache Solr 1.4.1
download from http://www.apache.org/dyn/closer.cgi/lucene/solr/

# tar xzf apache-solr-1.4.1.tgz -C $INSTALL_DIR
# cd $INSTALL_DIR
# chown -R tomcat.tomcat apache-solr-1.4.1
# ln -s apache-solr-1.4.1 apache-solr
# export SOLR_HOME=$INSTALL_DIR/apache-solr


sen-1.2.2.1
インストール手順は /2011/01/sen-1221.html

Tomcat の起動オプションに sen.home を追加する。

# vi /etc/tomcat5/tomcat5.conf

JAVA_OPTS="$JAVA_OPTS -Dcatalina.ext.dirs=$CATALINA_HOME/shared/lib:$CATALINA_HOME/common/lib -Dsen.home=/usr/local/sen-1.2.2.1"


lucene-ja-2.0
インストール手順は /2011/01/lucene-ja-20.html




次にwebappsの設定

Tomcat に Solr の webapps を配置

# mkdir /var/lib/tomcat5/webapps/solr
# cd /var/lib/tomcat5/webapps/solr
# jar xf $SOLR_HOME/example/webapps/solr.war


sen.jar を webappsにコピーする。

# cp $SEN_HOME/lib/sen.jar /var/lib/tomcat5/webapps/solr/WEB-INF/lib


lucene-core.jar と lucene-ja.jar を webappsにコピーする。

# cd ~/lucene-ja/lib/
# cp lucene-core-2.0.0.jar lucene-ja-custom.jar /var/lib/tomcat5/webapps/solr/WEB-INF/lib/


solrのホームディレクトリを作成

サンプルをベースに利用します。

# cd $SOLR_HOME
# cp -a example/solr home

solrconfig.xml を編集して、データディレクトリを設定します。

# cd $SOLR_HOME
# vi home/conf/solrconfig.xml

  <dataDir>/usr/local/apache-solr/home/data</dataDir>


webapps の web.xml で、solr/home を設定します。

# vi /var/lib/tomcat5/webapps/solr/WEB-INF/web.xml

    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/apache-solr/home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>



Tomcat 起動

# /etc/init.d/tomcat5 start
# cat /var/log/tomcat5/catalina.out

ブラウザで、起動を確認する。

http://solrhost:8080/solr/


※ Tomcat の起動時に Xpath のエラーが出る場合は、xalan, xerces をインストールする。

download from http://xml.apache.org/xalan-j/downloads.html

# tar xzf xalan-j_2_7_1-bin-2jars.tar.gz
# cp xalan-j_2_7_1/*.jar /var/lib/tomcat5/shared/lib


※ 日本語の検索で文字化けする場合は、SetCharacterEncodingFilter を使う

ここではTomcat5のサンプルをそのまま利用します。

# cp SetCharacterEncodingFilter.class /var/lib/tomcat5/shared/classes/filters/
# vi /var/lib/tomcat5/webapps/solr/WEB-INF/web.xml

  <filter>
    <filter-name>Set Character Encoding</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>Set Character Encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>


# vi /etc/tomcat5/tomcat5.conf

    <Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true"
               URIEncoding="UTF-8" useBodyEncodingForURI="true" />




参考サイト

http://lucene.apache.org/solr/tutorial.html
http://d.hatena.ne.jp/knaka20blue/20080922/1222104683
http://kazuakey.blogspot.com/2010/12/solr-14-sen.html
http://d.hatena.ne.jp/gnarl/20080912/1221189985

No comments:

Post a Comment