LoginSignup
8
8

More than 5 years have passed since last update.

Apache Solr(JDK7, Solr 4.9.1, jetty 9)をインストールしてみたその1

Last updated at Posted at 2015-04-15

Apache Solr

全文検索エンジンと言えば旬の「Elasticsearch」ですが、たまたま Apache Solr を調査する機会があったのでそのメモです。しかし枯れた感じがする Solr だけど意外とインストールに手間取った。

検索エンジンの常識をApache Solrで身につける

ソフトウェア バージョン
Java 1.7.0
Apache Solr 4.9.1
Jetty 9.2.10

Vagrant

いつもの定義だってばさw

config.vm.define :solr do |node|
  node.vm.network :private_network, ip: "192.168.11.210"
  node.vm.provider "virtualbox" do |v|
    v.customize ["modifyvm", :id, "--memory", 512]
  end
end

Java のインストール

Solr 4.9系は、JDK 7以上じゃないと動かないよ、ってどこかで見たような気がするので、JDK 7 ランタイム,開発環境, ant と wget をインストールします。まあランタイムだけでもいいっちゃいいと思うけどねw

# yum install java-1.7.0-openjdk.x86_64 java-1.7.0-openjdk-devel.x86_64 ant.x86_64 wget

Apache Solr のインストールと起動確認

インストール先は、どこでもいいのですが特にこだわりないので、/var/local にインストールしました(ちゃんと考えると /opt がいいかもねw)。

$ wget http://ftp.riken.jp/net/apache/lucene/solr/4.9.1/solr-4.9.1.tgz
$ tar xvfz solr-4.9.1.tgz
$ sudo cp -rp solr-4.9.1 /var/local/solr/
$ cd /var/local/solr/example
$ sudo java -jar start.jar

ずらずらずらーってなんだか滝のように表示されるけどエラーらしき表示がされていなければ、Solr が起動してますので。管理画面が表示されるるかブラウザで確認してます。

管理画面 : http://192.168.11.210:8983/solr
検索画面 : http://192.168.11.210:8983/solr/collection1/browse

solr-1.png

データを登録、検索してみる

適当なとこに下記のファイルを作成します。

solrtest.xml
<add>
    <doc>
        <field name="id">1</field>
        <field name="name">hoge hoge</field>
    </doc>
    <doc>
        <field name="id">2</field>
        <field name="name">アパッチ</field>
    </doc>
    <doc>
        <field name="id">3</field>
        <field name="name">東京特許許可局</field>
    </doc>
</add>

curl を使って登録してみます。

$ curl 'http://localhost:8983/solr/collection1/update?commit=true&indent=true' --data-binary @solrtest.xml -H 'Content-Type: text/xml'
<?xml version="1.0" encoding="UTF-8"?>
<response>

<lst name="responseHeader">
  <int name="status">0</int>
  <int name="QTime">155</int>
</lst>
</response>

curl を使って検索してみます。

# curl "http://localhost:8983/solr/collection1/select?q=hoge&wt=json&indent=true"
{
  "responseHeader":{
    "status":0,
    "QTime":10,
    "params":{
      "indent":"true",
      "q":"hoge",
      "wt":"json"}},
  "response":{"numFound":1,"start":0,"docs":[
      {
        "id":"1",
        "name":"hoge hoge",
        "_version_":1498497071919923200}]
  }}

Jetty 9 をインストールし Solr を起動

ここまで順調ですが、こっからが多少はまりました。

起動に失敗するw

折角なので Jetty 9 を使って Solr を起動してみます。そして起動しないってオチを再現します。

$ wget http://download.eclipse.org/jetty/stable-9/dist/jetty-distribution-9.2.10.v20150310.tar.gz
$ tar zxvf jetty-distribution-9.2.10.v20150310.tar.gz
$ sudo cp -rp jetty-distribution-9.2.10.v20150310 /var/local/jetty/
$ sudo cp /var/local/jetty/bin/jetty.sh /etc/init.d/jetty

jetty の起動パラメータを /etc/default/jetty に設定します。

/etc/default/jetty
JAVA_HOME=/etc/alternatives/java_sdk
JAVA_OPTIONS="-Djava.awt.headless=true -server -XX:+UseGCOverheadLimit -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+UseTLAB -XX:MaxPermSize=128m -Xms512M -Xmx1024M $JAVA_OPTIONS -Dsolr.solr.home=/var/local/solr/example/solr"
NO_START=0
JETTY_ARGS=jetty.port=8983
JETTY_USER=root
JETTY_HOME=/var/local/jetty
JETTY_LOGS=/var/local/solr/example/logs

で、サービスを起動してみます。エラーが発生しとるw

# service jetty start

動かない理由がわかった

jettyで動かすための環境が整備されていないというオチでした。なので設定ファイルもコピーしたりして再挑戦します。

$ sudo cp -a /var/local/solr/example/webapps/solr.war /var/local/jetty/webapps/solr.war
$ sudo cp -a /var/local/solr/example/contexts/solr-jetty-context.xml /var/local/jetty/webapps/solr.xml
$ sudo cp -a /var/local/solr/example/lib/ext/* /var/local/jetty/lib/ext/
$ sudo service jetty start

管理画面が表示されたー (^^

INFO をファイルに保存

INFO が画面に表示されウザイと思ったら log4j の設定がされていなかった。ので、ファイルに保存するよう適当に編集します。ここらへんは、後々に響くのでちゃんと設定しといた方が良いです。

/var/local/jetty/resources/log4j.properties
# This is not needed by Jetty - but it helps with many web apps.

log4j.rootLogger=INFO, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

#- size rotation with log cleanup.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=4MB
log4j.appender.file.MaxBackupIndex=9

#- File to log to and log format
solr.log=/var/local/solr/example/logs
log4j.appender.file.File=${solr.log}/solr.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS}; %C; %m\n

よっしゃ。

参考にさせて頂いたサイトさま

Ubuntu12.04にJetty9とsolr4.5.1をインストールしてみる
Apache Solrのインストール
apache solr インストール

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8