Macに全文検索エンジン『Solr』の環境を構築する方法のイメージ画像

Macに全文検索エンジン『Solr』の環境を構築する方法

  • 公開日:2019/02/11
  • 更新日:2019/02/11
  • 投稿者:n bit

Macに転置インデックスを作り表記揺れなども含めて全文検索できる全文検索エンジン『Solr』の環境を構築する方法を解説します。今回は『Solr』のバイナリデータをダウンロードして直接起動します。

  • Python

この記事は約 分で読めます。(文字)

Macに全文検索エンジン『Solr』の環境を構築する方法

今回は『Solr』のバイナリデータをダウンロードして直接起動する方法を解説します。

Solrをダウンロード

最初に『Solr』を公式サイトからダウンロードします。下記のサイトにアクセスしてダウンロードしてください。

サイトにアクセスしたら右上のダウンロードボタンをクリックします。

Solr 公式サイト

下記の赤枠部分をクリックしますとダウンロードできるファイルが表示されます。

Solr ダウンロード画面に遷移

右クリックして任意のフォルダにダウンロードしてください。今回は『tgz形式(solr-7.6.0.tgz)』を選択しました。

Solr 最新バージョンのダウンロード

  • ドキュメント内に『Solr』ディレクトリを作成しダウンロードしています。

Solrを起動

先ほどダウンロードした『Solr』を起動していきます。先ほど『Solr』をダウンロードしたディレクトリに『cd』コマンドで移動してください。

$ cd /Users/xxxxx/Documents/Solr

ダウンロードしたファイルを解凍します。

  • バージョン名はダウンロードしたバージョンに合わせて適宜変更してください。
$ tar xzf solr-7.6.0.tgz

解凍した『Solr』のディレクトリに移動します。

$ cd solr-7.6.0

『Solr』の起動コマンドを実行しましょう。

$ ./bin/solr start -e cloud

Macに現在インストールされているJavaのバージョンが古いと以下のようなメッセージが表示されます。バージョンが適合していないので新しいバージョンのJavaをインストールしましょう。

Your current version of Java is too old to run this version of Solr.

We found major version 6, using command 'java -version', with response:
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-468)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-468, mixed mode)

Please install latest version of Java 8 or set JAVA_HOME properly.

Debug information:
JAVA_HOME: N/A
Active Path:
/Users/xxxxx/.nvm/versions/node/v10.12.0/bin:/Users/xxxxx/.pyenv/shims:/Users/xxxxx/.pyenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

新しいJavaのインストール

  • ※:最新のJavaがインストールされていた場合は上記メッセージが表示されません。このセクションを読み飛ばしてください。

現在インストールされているJavaのバージョンを確認しておきます。

$ java -version

出力結果

java version "1.6.0_65"

Java(TM) SE Runtime Environment (build 1.6.0_65-b14-468)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-468, mixed mode)

これをJava 8以上のバージョンに引き上げます。

JavaのインストールにはHomebrewの拡張『Homebrew Cask』が必要です。まだHomebrewのセットアップが完了していない方は、下記ページをご参照の上、先にインストールしておいてください。

『Homebrew Cask』を使用できるようにするためHomebrewをアップグレードしておきましょう。

$ brew tap homebrew/cask

『Homebrew Cask』で新しいJavaをインストールするには下記コマンドを実行します。自動的に最新のJavaがインストールされます。

$ brew cask install java

下記のように表示されればインストール成功です。

==> Satisfying dependencies

==> Downloading https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_osx
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'java'.
==> Installing Cask java
==> Moving Generic Artifact 'jdk-11.0.2.jdk' to '/Library/Java/JavaVirtualMachin
Password:
🍺 java was successfully installed!

特にバージョン指定しませんでしたので最新の11.0.2がインストールされました。バージョンの確認をしても新しいバージョンに変更されていることが確認できます。

$ java -version

出力結果

openjdk version "11.0.2" 2019-01-15

OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

それでは再度『Solr』の起動コマンドを実行しましょう。

$ ./bin/solr start -e cloud

今度は問題なく起動コマンドが実行されました。ここからSolrの『サーバ』を起動するための対話型セッションが開始されます。

最初のセッションに関しては、実行する濃度数の指定です。デフォルト([2])のままで良いのでreturnをクリックしてください。

Welcome to the SolrCloud example!


This interactive session will help you launch a SolrCloud cluster on your local workstation.
To begin, how many Solr nodes would you like to run in your local cluster? (specify 1-4 nodes) [2]:

次は、1つ目のノードが動作するポートの指定です。デフォルト設定(8983)で良いのでreturnをクリックします。

Ok, let's start up 2 Solr nodes for your example SolrCloud cluster.

Please enter the port for node1 [8983]:

2つ目のノードが動作するポートの指定です。デフォルト設定(7574)で良いのでreturnをクリックしてください。

Please enter the port for node2 [7574]: 

2つのノード設定で初期化し実行開始します。参照用のコマンドが出力されます。

Creating Solr home directory /Users/xxxxx/Documents/Solr/solr-7.6.0/example/cloud/node1/solr

Cloning /Users/xxxxx/Documents/Solr/solr-7.6.0/example/cloud/node1 into
/Users/xxxxx/Documents/Solr/solr-7.6.0/example/cloud/node2

Starting up Solr on port 8983 using command:
"bin/solr" start -cloud -p 8983 -s "example/cloud/node1/solr"

*** [WARN] *** Your open file limit is currently 10240.
It should be set to 65000 to avoid operational disruption.
If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
*** [WARN] *** Your Max Processes Limit is currently 2837.
It should be set to 65000 to avoid operational disruption.
If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
Waiting up to 180 seconds to see Solr running on port 8983 [-]
Started Solr server on port 8983 (pid=48536). Happy searching!


Starting up Solr on port 7574 using command:
"bin/solr" start -cloud -p 7574 -s "example/cloud/node2/solr" -z localhost:9983

*** [WARN] *** Your open file limit is currently 10240.
It should be set to 65000 to avoid operational disruption.
If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
*** [WARN] *** Your Max Processes Limit is currently 2837.
It should be set to 65000 to avoid operational disruption.
If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
Waiting up to 180 seconds to see Solr running on port 7574 [-]
Started Solr server on port 7574 (pid=48630). Happy searching!

INFO - 2019-02-10 21:33:38.280; org.apache.solr.common.cloud.ConnectionManager; zkClient has connected
INFO - 2019-02-10 21:33:38.292; org.apache.solr.common.cloud.ZkStateReader; Updated live nodes from ZooKeeper... (0) -> (2)
INFO - 2019-02-10 21:33:38.304; org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider; Cluster at localhost:9983 ready

起動が完了すると、データのインデックス作成に使用するコアを作成するように求められます。今回は『nlpwiki』と入力しました。

createコマンドで『nlpwiki』という名前のコアを直接作成する場合と同じです。

  • $ ./bin/solr create -c nlpwiki
Now let's create a new collection for indexing documents in your 2-node cluster.

Please provide a name for your new collection: [gettingstarted]
nlpwiki

索引の分割数について聞かれます。こちらの設定もデフォルトのままで良いのでreturnをクリックしてください。

How many shards would you like to split nlpwiki into? [2]

次もデフォルト設定ですのでreturnをクリックします。

How many replicas per shard would you like to create? [2] 

configSetの選択です。デフォルトで良いのでreturnをクリックします。もしもサンプルデータを利用したい場合は『sample_techproducts_configs』と入力してください。

Please choose a configuration for the nlpwiki collection, available options are:

_default or sample_techproducts_configs [_default]

『Solr』の起動に必要な対話型セッションはこれで全て終了です。以下のように表示されれば無事に『Solr』が起動しています。

Created collection 'nlpwiki' with 2 shard(s), 2 replica(s) with config-set 'nlpwiki'


Enabling auto soft-commits with maxTime 3 secs using the Config API

POSTing request to Config API: http://localhost:8983/solr/nlpwiki/config
{"set-property":{"updateHandler.autoSoftCommit.maxTime":"3000"}}
Successfully set-property updateHandler.autoSoftCommit.maxTime to 3000


SolrCloud example running, please visit: http://localhost:8983/solr

『http://localhost:8983/solr』にアクセスしてください。ブラウザで下記のように表示されれば問題ありません。

Solr 起動画面

Solrの停止


起動した『Solr』の停止には以下のコマンドを利用します。

$ ./bin/solr stop -all

今日のdot

全文検索エンジン『Solr』の起動は少し項目が多く感じますが実際にやってみるとそんなに時間はかかりません。基本的に手順通りやれば数分で起動できます。