検索ツールFESS
前回までに検索技術全般の紹介をした。検索システムはデータベースとそれに対するクエリDSLとUIを組み立てれば構築できるものと考えられ、いくつかのオープンソースを組み合わせてゼロからそれらを構築することは可能であるが、要求仕様も不明確な検証実験の場合には、まず動作するモジュールを作ってユーザーからフィードバックを得ながら構築するアジャイル的なアプローチが求められる。それらを行うためには、なるべく簡易に構築可能なフレームワークを利用することが得策である。
今回からそれらに使えそうなツールのいくつかを紹介する。まず最初はFESS。オープンソースの全文検索ツールで、「5 分で簡単に構築可能な全文検索サーバー」と謳われている。Javaがあれば動作するので、Windows,Mac,Lynux全ての環境で動作し、Apache ライセンスで提供されているので無料で利用することが可能である。
FESSのUI画面を以下に示す。
検索機能としては一般的な全文検索の他に、地図情報と連携した位置情報検索、ユーザー辞書の登録にファセットドリルダウン、検索結果のラベル付けによる分類等ある程度の検証に耐えうる機能はほぼ含まれている。
また対応するデータに関しても、ドキュメント(MS OfficeやPDF等)のファイルに対するファイルクロール、指定したwebページに対するウェブクロール、あるいはDBに対するデータストアクロールが可能で、自動でのデータインポートとインデックス付けができる。
ツールのインストール/設定に関してはFESSのHPにてスクリーンショット付きで詳細に説明されてあるが、ここに簡単な手順を記載する。
(1)PCにJAVAが入っているかどうか?入っていればそのバージョンを確認する。
macの場合、ターミナルで以下を入力し、その下に示すようなメッセージが入っていればJAVAが入っている。この場合バージョンは11.0(FESSではJAVA11を推奨)、
> java --version
java 11.0.1 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)
(2) JAVAが入っていない場合(あるいはバージョンが古い場合)、JAVAをインストールする。
(3)(1)に戻ってインストールされたJAVAのバージョンを確認した上で、FESSをダウンロードする。(ページの中の最新のfessのzipファイルをダウンロードして解凍するだけ)
(4)(3)でダウンロードしたFESSのフォルダの中からbinフォルダの中のFESSファイルをダブルクリック(あるいはターミナルでFESSフォルダを指定して/bin/fess を実行する。
(5)(4)まででFESSは立ち上がり、ブラウザで http://localhost:8080/admin にアクセスするとFESSの管理画面に入る。
(6)検証目的を定めて、入力するファイル、ウェブページ、DBを決める。ファイルの場合は検索対象が一つのファイルになるため、ページ単位やパラグラフ単位で検索したい場合はそれらを必要な単位で分割したファイルを作成しておく。
(7)(6)のファイルをPC上の任意のフォルダーに格納、データのインポートはクロール設定のページからもできるが、簡易的に行うためには管理画面の簡易セットアップを選択する。
まずhttp://localhost:8080/adminの画面 でログイン。ユーザー名「admin」パ スワード「admin」を以下のように入力する。
次にログインした最初の画面。 「システム」ボタンを押す
次に「システム」の下の「ウィザード」を押す。
「設定の開始」のボタンを押す
クロールの設定(名前:任意、クロールパス:(6)で格納したファイルフォルダの絶対パス、最大アクセス数:対象データの数+α、深さ:格納したデータの中でフォルダ構成になっている場合はその深さ、なければ1)を設定して、「作成」のボタンを押す。(Windowsの場合はファイルパスの表現が異なることに注意)
クロールの開始を押す。
(8)管理画面の「スケジューラー」に移動し、処理状態を確認する。全ての状態が「有効」になったら、セッティングが全て終了。画面右上の「検索画面」をクリックする
すると検索画面となる。
キーワードを入力し、結果が出て来れば完了。
(9)検索条件等をチューニングしたい場合は、公式ホームページの検索のページを参照しチューニングする。
業務の課題は「探す」ことに起点することが多く、FESSを用いることで容易に検索システムを構築でき、最短で検証実験を行うことができる。実験をある程度回したところで、分析された課題から次のステップを考えれば良く、FESSをそのまま使えば解決しそうな課題であればそれらを利用し、更に高度な課題が出てきた場合には、FESSのバックグラウンドで使われているElasticSaerchの利用を考えたり、更にはオーダーメイドのシステムの検討を考えることとなる。
次回はFESSよりフレキシビリティの高い検索システムを構築可能なElasticsearchについて述べる。
コメント
[…] 前回Elasticsearchの概要を述べたので、今回は実際の利用について述べる。(以下のES及びKibanaのバージョンは6.8.13にて説明する) Elasticsearchの立ち上げ自体はシンプルで、先述のFESSの場合と同様Javaを導入して、ダウンロードページからzipファイルをダウンロードして、解凍したフォルダのトップからコマンドラインツールで「bin/elasticsearch」を実行するだけである。実行後にブラウザを立ち上げ、「localhost:9200」を実行して以下のようなjsonファイルが見えればelastcisearchの立ち上げ完了を確認できる。 […]
[…] 次回は、簡易な検索システムを構築可能なFESSについて紹介したいと思う。 […]
[…] 前回に続いてに紹介するのが、検索ツールのデファクトであるElasticSearch(ES)である。ESはFESSのバックグラウンドでも使われているツールであり、全文検索エンジンであるApache Luceneをベースとした超高速分散処理型検索システムで、Javaで組まれたApacheライセンスのオープンソースプログラムとなる。 […]
[…] 検索ツールFESS Elastic SearchベースとしたオールインワンのOSS […]
[…] 検索ツールFESS 5分で立ち上げられるOSS検索ツール […]
[…] 検索ツールFESS 5分で立ち上げられるOSS検索ツール […]