Apache Solr - 全文検索、異体字同時検索、ファセット…

ここ5年ほど、Webでの全文検索は、どこも大体似たような感じの機能に落ち着いてきているように思います。全文検索ができて、異体字も同時に検索ができて、ファセットから絞り込みができて…。

この背景には、Apache Luceneという全文検索ソフトウェアの存在があります。プログラミング言語Javaで書かれておりMac でもWindowsでもLinuxでも動くフリーソフトウェアです。とにかく速くて、我々が思いつく機能は大体用意されています。多言語対応も充実していて、日本語を分かち書きして単語ごとに検索する、といったこともできます。つまり、日本語分かち書きソフトも組み込まれているということです。これがあちこちのサイトで使われるようになっているのです。たとえば、最近話題のジャパンサーチでも検索にはこれを使っているそうです。

ところで、Javaで書かれているということは、手元のパソコンでも動かせるのではないか…?と誰もが思うところです。その通り、パソコン上でも動きます。色々な動かし方があるようですが、比較的簡単なのは、Apache Solrを使ってブラウザ経由で動かすという方法です。Apache SolrにはこのApache Luceneが組み込まれているので、SolrをインストールすればLuceneが使えるようになるという具合です。ちなみに、ジャパンサーチではElasticsearchを採用することでApache Luceneを使っているようです。基本的に、超大規模なものになるとElasticsearchを使った方がよさそうな感じです。

さて、このApache Solrですが、個人的経験としては、SAT大蔵経テキストデータベース 2018年版を作った時に採用しておりまして、ここで採用するまでには色々な試行錯誤をしておりました。もちろん、Elasticsearchも試してみた、というか、別の試験的なシステムに採用してみたことがありますが、Apache Solrの方が枯れていてわかりやすいような感じがしたので、こちらにしました。そこら辺の経緯は『デジタル学術空間の作り方』(オープンアクセス本)のChapter 1にも書いていますので、そういうことに興味がおありでしたらぜひご一読ください。

その後、最近になって、前回記事にてご紹介した「みんなで翻刻」の検索システムの開発に際して採用しました。と言ってもこちらは非常に簡素な使い方で、ファセットも使ってないようなものですが、せっかくですので少しApache Solrの使い方などをご紹介しておきたいと思います。これは、ググってみて、新しくてまとまった解説があんまりないことがちょっと気になったということもあります。

Apache Solrですが、使うためにはJava環境をインストールする必要があります。Mac OSとかWindows10のWSLだとJava環境も含めて比較的簡単にインストールできると思いますが、Windows10の通常のWindows環境ですと、環境変数JAVA_HOMEの設定をしなければならないようで、微妙に大変でした。とにかく、「java環境 インストール」などとしてググると色々やり方が出てきますので、そちらをご参照ください。WSLでUbuntu18.04だと多分こういう感じです。 $ sudo apt install -y openjdk-11-jdk

次に、Apache Solr のダウンロードです。こちらの頁から、「most recent Apache Solr release.」などと書かれたバージョンのBinary releasesのtar.gzかzipファイルをダウンロードします。tar.gzと言われてなんだかよくわからない場合はzipの方をダウンロードするのがおすすめです。現在の最新安定版は8.4.1ですので、たとえばこちら

なお、ここからはWindows 10とWindows 10 WSLのUbuntu18.04環境の話をしていきますが、MacOSは多分WSLと大体同じやり方でできるのではないかと思いますので適宜読み替えてください。

さて、ファイルをダウンロードしたら圧縮ファイルを伸張してそのフォルダに入ります。このとき、おそらく、ターミナルでCUI環境でないとうまく動かないのではないか…と思いますので、このフォルダでターミナルを開いてみましょう。 Windows10の場合はパワーシェルのターミナルを開くことになると思います。パワーシェルの場合は、エクスプローラ画面の何もないところをシフトキー+右クリックすると以下のようなダイアログが現れますので、「PowerShellウインドウをここで開く」を選択するとパワーシェルが開きます。 f:id:digitalnagasaki:20200123034751p:plain

パワーシェルを開くと以下のように、文字ベースでコンピュータに命令を出せるようになります。

それから、Windows10の場合は、このあたりでこちらからcurlをインストールしておいて、パワーシェルから使えることを確認しておいてください。

WSLであれば、現在のところ、大体以下のようになっていると思います。(なお、今回用意した事例で使っているApache Solrのバージョンは8.4.0で、一つだけ古いです。)

f:id:digitalnagasaki:20200123033521p:plain

そこで、以下のように、コマンドを入力してEnterキーをおしてみます。

PowerShell:

\solr-8.4.0> bin/solr start

WSL+Ubuntu18.04:

nagasaki@LV8:solr-8.4.0$ ./bin/solr start

そうすると、色々なメッセージがでてきます。メッセージが止まったなと思ったら、以下のURLにWebブラウザでアクセスしてみましょう。

http://localhost:8983/

ここで、このサイトのApach Solrの管理画面にアクセスできるようになります。

ところで、眠くなってきてしまったので、続きはまた次回としたいと思います。引き続き、よろしくお願いいたします。