Rails - Tire と 全文検索エンジン Elasticsearch (1)
Elasticsearch は、Apache Lucene ベースの検索エンジンです。 fourcesquare や github 内部で使われています。 Tire という Rails プラグインのクライアントが出ています。
今回は、はじめに elasticsearch に調べて動かしてみます。
Apache Lucene(ルシーン)
Apache Lucene は、Elasticsearch のベースとなっている検索エンジン。 Javaで実装されています
- Lucene Core - クラスライブラリ
- Solr - 検索エンジンサーバ
前回取り上げた、sunspot は検索エンジン Solr を使ったRailsクライアントです。
Elasticsearch の特徴
http://www.elasticsearch.org/ に説明のある特徴は次の通り。
- リアルタイムのデータと分析が可能である
- 分散型である
- RESTful なAPIである
- インタフェースは JSON でありクエリが発行しやすい
- 信頼性が高い
- 別のグループのインデックスをもてる
- 高性能なバージョン管理システムにより競合を防止できる
- トランザクションによる整合性を保持
- Apache 2 オープンライセンス
習うより慣れろ
といろいろありますが、まず、イメージを掴みやすくするために動かしてみます。
ダウンロード
http://www.elasticsearch.org/ からダウンロードします。 更新日現在のバージョンは 0.9.0 です。
zip, tar.gz, dep, rpm があるので適当なものを選んでください。 今回の開発環境は Mac OS X なので、zip を選びました。
展開する
OSの機能を使って展開します。MacOSの場合はダブルクリックします。 ダウンロード後は、とりあえず Application フォルダにコピーしました。
なお、Java Runtime が必要です。 Mac OS の場合はサーバを起動するタイミングでインストールダイアログが出ます。 それ以外のOSは別途インストールが必要です。
起動する
$ cd
$ bin/elasticsearch -f
ずらずらっとログが表示されますが、
[INFO][node] [X-Man] started
が表示されたら起動成功してます。
フォアグラウンドで動かしてますので、プロンプトは戻ってきません。
アクセスする
$ curl -X GET http://localhost:9200
成功すればJSON形式のリプライが戻ってきます。
{
"ok" : true,
"status" : 200,
"name" : "X-Man",
"version" : {
"number" : "0.90.3",
"build_hash" : "5c38d6076448b899d758f29443329571e2522410",
"build_timestamp" : "2013-08-06T13:18:31Z",
"build_snapshot" : false,
"lucene_version" : "4.4"
},
"tagline" : "You Know, for Search"
}
どうやら動いているようですね。
次回以降は Elasticserver の詳細と Tire について調べてみます。