Railsで使えるGem

ElasticSearchをRubyから使う~elasticsearch-ruby

投稿日:

gem elasticsearch-ruby

前提として、ubuntu serever 14.04にelasticsearchがインストール済みの環境とします.

elasticsearch-rubyはRubyでElasticsearchを使うことができるgem.

elastic/elasticsearch-ruby

その他に、railsから使うことを想定したelasticsearch-railsやrailsのモデルと容易にインテグレートできるsearchkickといったgemがある.

elasticsearch-rubyは、elasticsearch-apiとelasticsearch-transportとに分けられる.
elasticsearch-apiはElasticsearchのREST APIを操作でき、elasticsearch-transportはclusterに接続することができる.

参考: Elasticsearch API 一覧

今回はelasticsearch-apiを触ってみた.

環境

ElasticSearch 1.5.2
gem
elasticsearch (1.0.8)
elasticsearch-api (1.0.7)
elasticsearch-transport (1.0.7)

インスタンス作成

メソッド一覧

情報取得

ドキュメントの作成

index、typeを指定して、bodyでデータを挿入する.
idを指定しないと、idは自動で作成される.

ドキュメントの更新

updateメソッドでは、パーシャルアップデートをする.

ドキュメントの作成・更新

indexメソッドは、ドキュメントがなければ作成して、あれば更新する.

ドキュメントの読込

getメソッドでindex、type、idを取得して対象ドキュメントを取得できる.

mgetメソッドで複数のドキュメントを取得できる.

ドキュメントの検索

searchで検索する.

全インデックス対象

elasticsearchのクエリーを投げることもできる.
term句
value: ‘world’に10倍の価値をつける

terms句
配列の語句の2つ両方に該当する.

配列の語句の少なくとも2つに該当する.

match句
検索語句自体を分析して最適なクエリーを作成する.

ドキュメントの削除

deleteメソッドでidを指定してドキュメントを削除できる.

-Railsで使えるGem
-,

執筆者:

関連記事

no image

Rails3.2でリアルタイムメッセージングサービスをherokuにデプロイしたよ〜private_pub,Faye

参考 Rails3.2でリアルタイムメッセージング~Private_pub、Faye さっそくherokuにあげてみた ブラウザを2つ起動して並べてみれば投稿した内容が即時にほかのブラウザに反映するの …

連続的な位置情報の取得とHerokuへのアップ~HTML5 Geolocation API

  目次1 連続的な位置情報の取得2 heroku3 結果 連続的な位置情報の取得 連続的な位置情報の取得はこんなかんじで書いてみた [crayon-5b78a4482e1e88052304 …

no image

Rails3でTwitter Bootstrapのサーチフォームを実装する~form_tag

目次1 git & gitolite2 仕組みを考える3 フィーチャの作成4 Viewの作成5 Controllerの作成6 Modelの作成7 テストが通らない!8 mergeして終わり g …

backbone-relationalで関連するコレクションをRails3.2のAPIに投稿〜accepts_nested_attributes_for

By: Mike Baird – CC BY 2.0   backbonerelational.org/ Backbone-relationalを使って関連するコレクションをまと …

Rails4.0で添付したpdfファイルの中身を全文検索の対象にする〜carrierwave、pdftotext、pg_bigm

By: Uncalno Tekno – CC BY 2.0 環境 Ubuntu server 12.04 sunspot_cellにしようとおもってたけど、ライブラリとか勉強することが多く …