Web + Life Hack

〜True But Useless〜

【開発環境】【検索】ローカル環境にApach Solr入れてみた。


今回は前提が多いです。。。

前提条件
・Gem fileに以下を追記変更済み
 「gem 'sunspot_rails'」
 「gem 'sunspot_solr'」
・bundle install 実行済み
・Apach Solr側にインデックスを貼るソースをRailsアプリ側で作成済み
・g08m11の箇所は任意なので適宜、読み替えてください。
javaがインストール済み

1・ソース(apach solr)をダウンロードする(ダウンロード先は任意)

http://archive.apache.org/dist/lucene/solr/4.3.1/


2・ファイルを解凍する
unzip solr-4.3.1.zip
3・新規ディレクトリを作成

solr-4.3.1/example/solr/collection1をコピーし
新規ディレクトリ(ここではg08m11)を作成
(以降、カレントディレクトリはsolr-4.3.1/example)

cp -r ./solr/collection1 ./solr/g08m11

railsアプリとインデックスを貼るため、dataは削除

rm -r ./solr/g08m11/data
4・XMLの内容を変更する_1

(デフォルトでは長めのコメントがありますが混乱を招くので削除し、
下記内容のみにした方が良いです・)

vi ./solr/solr.xml

<?xml version="1.0" encoding="UTF-8" ?><solr persistent="true"> <cores defaultCoreName="collection1" host="${host:}"adminPath="/admin/cores" zkClientTimeout="${zkClientTimeout:15000}"hostPort="${jetty.port:8983}" hostContext="${hostContext:solr}">    <core loadOnStartup="true" instanceDir="collection1/"transient="false" name="collection1" collection="collection1"/>    <core loadOnStartup="true" instanceDir="g08m11/"transient="false" name="g08m11" collection="g08m11"/> </cores> </solr>
5・XMLの内容を変更する_2

solr/g08m11/conf/schema.xml
https://raw.github.com/sunspot/sunspot/master/sunspot_solr/solr/solr/conf/schema.xml
の内容で上書きする。

6・javaを実行

カレントディレクトリにてjavaを起動する。

java -jar start.jar
7・起動を確認する

ブラウザにて
localhost:8983/solr

へアクセスし、
「Core Admin」内に作成した「g08m11」が存在することを確認する。

8・indexを貼付けるためのコマンドを実行
bundle exec rails runner "G08m11.solr_index"

インデックスが貼られた場合、Solrに作成したg08m11にdataが作成され、ファイルが生成されていることを確認する。