5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Apache Solr Quick Start with Docker

Last updated at Posted at 2020-05-14

概要

Apache Solrを触ってみる。Dockerで環境を作る。

ダウンロードサイト

ここからSolrをダウンロードできる。
https://lucene.apache.org/solr/downloads.html

Requirements

  • OpenJDK 14.0.1

Dockerで環境構築

From openjdk:14.0.1

ARG SOLR_VER=8.5.1
ENV PATH $PATH:/usr/local/src/solr-${SOLR_VER}/bin

WORKDIR /usr/local/src
RUN curl -OL http://ftp.meisei-u.ac.jp/mirror/apache/dist/lucene/solr/${SOLR_VER}/solr-${SOLR_VER}.tgz
RUN tar zxvf solr-${SOLR_VER}.tgz

RUN yum install -y procps

WORKDIR /usr/local/src/solr-${SOLR_VER}
ENTRYPOINT ["solr", "start", "-f", "-force"]

build

$ sudo docker build -t solr ./

run

$ sudo docker run --rm -p 8983:8983 --name solr -it solr

WEB UI

画面が見れることを確認
http://localhost:8983/solr/
Screen Shot 2020-05-14 at 12.09.35.png

起動、停止コマンド

start

rootで起動する場合はforceが必要

./bin/solr start -force

stop

8983portを使用しているものを停止

./bin/solr stop -p 8983

全て停止

./bin/solr stop -all -force

Log

ログは以下に出力される。
/usr/local/src/solr-8.5.1/server/logs/solr-8983-console.log

SolrCloud(example)モード

SolrCloudモードで立ち上げる場合は、起動コマンドに-e cloudオプションを付ける。
SolrCloudとは、HA構成のモードであり、2つのそれぞれ異なるポートでnodeが2つ作られる。(defaultではnode1が8983, node2が7574)

ただし、このモードでは-fでforegroundでの起動をサポートしていないため、DockerfileからENTRYPOINTの行を削除してbuldし、以下の手順で起動する。

コンテナに入る

$ sudo docker run --rm -p 8983:8983 -p 7574:7574 --name solr -it solr /bin/bash

起動

色々promptが出るが、、全て空白でEnterを押してdefault値でOK。

$ cd /usr/local/src/solr-${SOLR_VER}/bin
$ ./solr start -e cloud -force

Welcome to the SolrCloud example!

WEB UI

以下2つのportで閲覧可能。

Log

SolrCloudのログは以下に出力される。

  • /usr/local/src/solr-8.5.1/example/cloud/node1/logs
  • /usr/local/src/solr-8.5.1/example/cloud/node2/logs

exampleデータを登録

defaultでデータセットが用意されているので登録してみる。

$ cd /usr/local/src/solr-8.5.1/example/exampledocs/

xml, json, csv全てをpostする。

$ post -c gettingstarted *.xml
$ post -c gettingstarted *.json
$ post -c gettingstarted *.csv

登録されたデータを確認

以下で検索できる。

$ curl "http://localhost:8983/solr/gettingstarted/select?q=*%3A*&wt=json&indent=true"

postしたデータが確認できる。

{
  "responseHeader":{
    "zkConnected":true,
    "status":0,
    "QTime":126,
    "params":{
      "q":"*:*",
      "indent":"true",
      "wt":"json"}},
  "response":{"numFound":48,"start":0,"maxScore":1.0,"docs":[
      {
        "id":"SP2514N",
        "name":["Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133"],
        "manu":["Samsung Electronics Co. Ltd."],
        "manu_id_s":"samsung",
        "cat":["electronics",
          "hard drive"],
        "features":["7200RPM, 8MB cache, IDE Ultra ATA-133",
          "NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor"],
        "price":[92.0],
        "popularity":[6],
        "inStock":[true],
        "manufacturedate_dt":"2006-02-13T15:26:37Z",
        "store":["35.0752,-97.032"],
        "_version_":1666641399393550336},
      {
        "id":"6H500F0",
        "name":["Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300"],
        "manu":["Maxtor Corp."],
        "manu_id_s":"maxtor",
        "cat":["electronics",
          "hard drive"],
        "features":["SATA 3.0Gb/s, NCQ",
          "8.5ms seek",
          "16MB cache"],
        "price":[350.0],
        "popularity":[6],
        "inStock":[true],
        "store":["45.17614,-93.87341"],
        "manufacturedate_dt":"2006-02-13T15:26:37Z",
        "_version_":1666641399397744640},
      {
        "id":"F8V7067-APL-KIT",
        "name":["Belkin Mobile Power Cord for iPod w/ Dock"],
        "manu":["Belkin"],
        "manu_id_s":"belkin",
        "cat":["electronics",
          "connector"],
        "features":["car power adapter, white"],
        "weight":[4.0],
        "price":[19.95],
        "popularity":[1],
        "inStock":[false],
        "store":["45.18014,-93.87741"],
        "manufacturedate_dt":"2005-08-01T16:30:25Z",
        "_version_":1666641399414521856},
      {
        "id":"apple",
        "compName_s":"Apple",
        "address_s":"1 Infinite Way, Cupertino CA",
        "_version_":1666641399451222016},
      {
        "id":"ati",
        "compName_s":"ATI Technologies",
        "address_s":"33 Commerce Valley Drive East Thornhill, ON L3T 7N6 Canada",
        "_version_":1666641399453319168},
      {
        "id":"canon",
        "compName_s":"Canon, Inc.",
        "address_s":"One Canon Plaza Lake Success, NY 11042",
        "_version_":1666641399455416320},
      {
        "id":"corsair",
        "compName_s":"Corsair Microsystems",
        "address_s":"46221 Landing Parkway Fremont, CA 94538",
        "_version_":1666641399456464896},
      {
        "id":"dell",
        "compName_s":"Dell, Inc.",
        "address_s":"One Dell Way Round Rock, Texas 78682",
        "_version_":1666641399457513472},
      {
        "id":"samsung",
        "compName_s":"Samsung Electronics Co. Ltd.",
        "address_s":"105 Challenger Rd. Ridgefield Park, NJ 07660-0511",
        "_version_":1666641399458562048},
      {
        "id":"viewsonic",
        "compName_s":"ViewSonic Corp",
        "address_s":"381 Brea Canyon Road Walnut, CA 91789-0708",
        "_version_":1666641399459610624}]
  }}

WEB UIでも検索できる
Screen Shot 2020-05-14 at 14.20.08.png

参考

5
1
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
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?