■インストール
macにインストールする
Javaは既に入ってると思うので、以下のコマンドでダウンロードする。
wget http://ftp.tsukuba.wide.ad.jp/software/apache/lucene/solr/3.6.0/apache-solr-3.6.0.zip unzip apache-solr-3.6.0.zip cd apache-solr-3.6.0
CentOSにインストールする
Javaが必要なので以下のコマンドでJavaをインストールする。
yum install java-1.6.0-openjdk java -version
以下のコマンドでダウンロードする。
wget http://ftp.tsukuba.wide.ad.jp/software/apache/lucene/solr/3.6.0/apache-solr-3.6.0.tgz tar xvzf apache-solr-3.6.0.tgz cd apache-solr-3.6.0
■設定
example/conf/schema.xml
<schema> <!--typesは大体元のxmlファイルを使う--> <fields> <field name="id" type="string" indexed="true" stored="true" required="true" /> <field name="name" type="text_ja" indexed="true" stored="true" required="true" /> <field name="value" type="text_ja" indexed="true" stored="true" required="true" /> <field name="text" type="text_ja" indexed="true" stored="false" multiValued="true"/> <field name="is_public" type="boolean" indexed="true" stored="true" required="true" /> </fields> <uniqueKey>id</uniqueKey> <copyField source="name" dest="text"/> <copyField source="value" dest="text"/> </schema>
ポート変更
デフォルトは8983で動作するが変更したい場合は以下のコマンドを実行する。
vim etc/jetty.xml
以下の部分を
<Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set>
以下のように変更する。
<Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
■データの準備
example/exampledocs/mydata.xml
同じディレクリに入ってるデータを参考に以下のようにしてみる。
<add> <doc> <field name="id">1</field> <field name="name">春</field> <field name="value">花粉症,花</field> <field name="is_public">true</field> </doc> <doc> <field name="id">2</field> <field name="name">夏</field> <field name="value">暑い,海</field> <field name="is_public">true</field> </doc> <doc> <field name="id">3</field> <field name="name">秋</field> <field name="value">紅葉</field> <field name="is_public">true</field> </doc> <doc> <field name="id">4</field> <field name="name">冬</field> <field name="value">寒い,雪</field> <field name="is_public">true</field> </doc> </add>
あまり良いサンプルデータとはいえない。
■起動
cd example java -jar start.jar
■データの登録
以下のコマンドでデータを登録する。
java -jar example/exampledocs/post.jar example/exampledocs/mydata.xml
■遊ぶ
http://localhost:8983/solr/admin/にアクセスする。
■データの削除
solrを止めてから以下のコマンドを実行する。
rm -fr example/solr/data/index
順序を間違えると面倒な事になる。
参考
■nginxをたてる
リモートにsolrを立てる場合は何らかの認証をしたいのでnginxを使ってBasic認証してみる。
wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm rpm -ivh epel-release-5-4.noarch.rpm yum install nginx /sbin/chkconfig nginx on /sbin/chkconfig --list nginx
nginxの設定
vim /etc/nginx/nginx.conf
以下のように記述する
location / { proxy_pass http://127.0.0.1:8389; auth_basic "Type your ID and password"; auth_basic_user_file htpasswd; }
yum install httpd htpasswd -c /etc/nginx/htpasswd hoge /etc/init.d/nginx restart
参考
■起動
再起動時にsolrが起動するようにする。
vim ~/start.sh
#!/bin/bash cd /home/hoge/apache-solr-3.6.0/example nohup java -jar /home/hoge/apache-solr-3.6.0/example/start.jar > /home/hoge/log/solr.log &
chmod 0777 start.sh
スクリプトが起動時に実行されるようにする。
sudo crontab -e
@reboot /home/ec2-user/start.sh