Apache Solrの概要
Apache Solr (アパッチ ソーラー)について調査する。
■概要
フリーの全文検索エンジン。全文検索ライブラリであるApache Lucene(ルシーン)を使用している。
■ライセンス
Apache License 2.0
■特徴
SolrにHTTPリクエストとして検索キーワードを投げ、検索結果をJSON形式で取得する、といったインタフェースを持っており、色々な言語(コンパイラ言語やスクリプト言語)のプログラムからの検索も可能となっている。
インデックスのキャッシュによる高速化、インデックスのレプリケーションによる負荷分散や冗長化、複数Solrによる分散検索(横串並行検索)、SolrCloudによる大規模対応も。
様々なファイル形式に対応したテキスト抽出機能を備えたインデクシング機能がある。
■ダウンロード
Apache SolrのページのDownloadリンクからダウンロードできる。2019/4/11現在の最新版は、8.0.0だ。zipを展開してその辺に置いたらインストール完了。
■前提プログラム
Java 8以上があればOK。Path環境変数にbinディレクトリを追加するのと、JAVA_HOME環境変数の設定は行っておこう。
■起動方法
100% Pure Javaなので、どのOSでも動く。Windows用にbinディレクトリに、solr.cmd っていうコマンドが置いてあるので、これを起動。
cd bin
solr.cmd start ※".cmd"は省略できるので、solr start でもいいね
solrコマンドは、デーモンプロセスを作成したあと、終了した。
ブラウザから、Solrの管理GUIである、http://localhost:8983/ にアクセスすると、トップページが表示された。
■Solrへのリクエスト方法(検索方法)
Solrへのリクエストは、基本的にHTTPを用いる。つまり、HTTPさえ投げられるならばどこからでも繋がる。例えば・・・
(1)Webブラウザから直に
(2)JavaScript
(3)Python
(4)Java (SolrJ)
(5)Ruby
(6)Curlコマンド
(7)Solrの管理UIから、という手も。
などなど。でも、今時通信ができない言語なんて聞いたことがないから、どの言語でも可能なんじゃね?
■Solrからのレスポンス形式
リクエスト時にwtパラメタでレスポンス形式を指定できる。下記の形式をサポートしている。
・csv (値をコンマで区切る形式)
・json (キーと値をコロン(:)で区切る形式)
・geojson (基本jsonだが、位置情報を含めた形式)
・javabin (カスタマイズ可能なバイナリ形式。SolrJもこれを利用)
・phps (phpの配列型データをシリアライズして文字列にした形式)
・python (Pythonの配列型に直接代入できる形式)
・smile (jsonベースのバイナリ転送形式。":)"で始まるためこの名が付いた)
・velocity (Apache Velocityの形式・・・・・わ、わからんw)
---------------------------------------
■ITとことんのトップページ
┗■Apache Solrのトップページ
┗■本ページ