Solrを使ってみる、その1



これまでさんざんLuceneは使ってきたのだが、今回Solrに手を出してみる。ちなみに読み方は、多くのビデオを見てみると「ソラー」のようだ。

ダウンロードとインストール

※ここではAdoptOpenJDK12で動作させることを前提とする。

Solr Downloadsから「solr-8.1.1.zip」をダウンロードして解凍する。

起動する

binフォルダにsolr.cmdがあるので、「solr start」として起動する。

何やら以下のような警告が出るが、一応起動するようだ。

C:\Users\admin\Desktop\solr\bin>solr start
OpenJDK 64-Bit Server VM warning: JVM cannot use large page memory because it do
es not have enough privilege to lock pages in memory.
Waiting up to 30 to see Solr running on port 8983
Started Solr server on port 8983. Happy searching!

ブラウザでlocalhost:8983にアクセスすると、以下の画面が表示される。

ちなみに、停止するには「solr stop -all」だそうだ。

サンプルデータを投入する

新たな「データベース」を作成する。

C:\Users\admin\Desktop\solr\bin>solr create -c new_cor
e
WARNING: Using _default configset with data driven schema functionality. NOT REC
OMMENDED for production use.
         To turn off: bin\solr config -c new_core -p 8983 -action set-user-prope
rty -property update.autoCreateFields -value false

Created new core 'new_core'

example\exampledocsに移動するとサンプルデータがある。ここで以下を実行。

java -Dc=new_core -jar post.jar *.xml
C:\Users\admin\Desktop\solr\example\exampledocs>java -Dc=new_core -jar post.jar
*.xml
SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8983/solr/new_core/update using con
tent-type application/xml...
POSTing file gb18030-example.xml to [base]
POSTing file hd.xml to [base]
POSTing file ipod_other.xml to [base]
POSTing file ipod_video.xml to [base]
POSTing file manufacturers.xml to [base]
POSTing file mem.xml to [base]
POSTing file money.xml to [base]
POSTing file monitor.xml to [base]
POSTing file monitor2.xml to [base]
POSTing file mp500.xml to [base]
POSTing file sd500.xml to [base]
POSTing file solr.xml to [base]
POSTing file utf8-example.xml to [base]
POSTing file vidcard.xml to [base]
14 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/new_core/update...
Time spent: 0:00:01.191

検索してみる

ブラウザに戻り、Core Selectorを見ると、new_coreができているので、これを選択。

Queryを選択し、そのままExecute Queryをクリックすると、何かしら表示される。

インデックスのありか

次のように「server\solr\new_core\data\index」にLuceneでよく見かけるインデックスが作成されている。

まとめ

以上は手作業でデータを投入し、手作業で検索してみたのだが、実際にはこんな利用はしないだろう。何らかのアプリからSolrのクライアントAPIを利用して、データ投入・検索を行うものと思われる。

次はこれを行っていく。

参考