Apache Solr(インストール編)

が投稿

Apache Solr始めました。入門編としてインストールからまとめてみます。

ローカル環境からAWSのRDS(MS SQLServer)に接続しINDEXを作る、作ったINDEXに対し C#を使ってHTTP経由で検索を行う…あたりまでまとめられればと思います。

インストール

最終的にセットアップする開発環境は以下のようになります。

  • Windows10(私はPro版で、Mac+Bootcampを使用しています)
  • Java 1.8.0(JREがあれば動きます)
  • Apache Solr 7.6.0
  • Microsoft SQL Server 2017(AWSのRDSと接続します)
  • Jdbc(mssql-jdbc-7.0.0.jre8.jar)
  • C#(Visual Studio Community2017)

Solrソフトウェアのダウンロード

実行ファイルを公式ページ(http://lucene.apache.org/solr/)からダウンロード・解凍します。
以下のミラーサイト(FTP)からダウンロードをするのが早いと思います。

ftp://ftp.kddilabs.jp/infosystems/apache/lucene/solr/7.6.0

ダウンロード対象は「solr-7.6.0.zip」です。ダウンロード後、任意の場所へ解凍してください。ここでは以下のディレクトリに展開します。
「C:\opt\solr-7.6.0」

Javaのダウンロード

インストーラーを公式ページからダウンロードし、インストールを実行します。

https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

ダウンロード対象は「jre-8u191-windows-x64.exe」です。インストール後、
コマンドプロンプトからバージョンの確認をします。

Solrの実行

コマンドプロンプトから実行します。実行ファイルへパスが通っていないと思いますので、ディレクトリ移動したうえで実行します。Solrのサービス開始コマンドは「solr start」です。「Happy searching!」と表示されれば、起動が正常に完了した証拠です。

ちなみに停止は「solr stop -all」です。ディレクトリを移動して実行してみます。

>cd C:\opt\solr-7.6.0\bin

C:\opt\solr-7.6.0\bin>solr start
INFO  - 2018-12-26 14:21:59.853; org.apache.solr.util.configuration.SSLCredentialProviderFactory; Processing SSL Credential Provider chain: env;sysprop
Waiting up to 30 to see Solr running on port 8983
Started Solr server on port 8983. Happy searching!

>

上記の通り、「Happy searching!」とメッセージが表示され、Solrが起動しました。ここからはブラウザで確認していきます。以下のURLへアクセスしますと、Solrの管理画面が表示されます。

http://localhost:8983/

Coreの作成

インデックスを作る単位(?現在勉強中です)を「Core」と呼んでいるようです。私は検索対象となるデータの集合体と理解しています。

Solrで検索できるようにまでの流れとして、

  1. Coreを作成する
  2. Coreに対し、検索対象のデータ(XML、PDF、jsonデータ、DBのデータなどなど…。)を登録する
  3. Indexingをする
  4. 作成したCoreに対し、検索可能になる

という流れになります。まずはお試しでCoreを1つ作成し、Jsonデータを登録、検索してみましょう。コマンドプロンプトから以下のように実行します。

>solr create -c test01
WARNING: Using _default configset with data driven schema functionality. NOT RECOMMENDED for production use.
         To turn off: bin\solr config -c test01 -p 8983 -action set-user-property -property update.autoCreateFields -value false
INFO  - 2018-12-26 14:53:33.684; org.apache.solr.util.configuration.SSLCredentialProviderFactory; Processing SSL Credential Provider chain: env;sysprop

Created new core 'test01'

「Created new core 'xxxx ' 」と表示されれば成功です。これで入れ物が出来上がりました。管理画面から確認すると「test01」が登録されています。ただ、ドキュメントを登録していないのでnumDocsの値が0と表示されています。このCoreにドキュメントを登録してきます。