サーチ…


インストールとテスト

ローカル開発のためにまずやりたいことは、あなたのマシンにElasticSearchをインストールし、それが動作しているかどうかをテストすることです。 Javaをインストールする必要があります。インストールはかなり簡単です:

  • Mac OS X: brew install elasticsearch
  • Ubuntu: sudo apt-get install elasticsearch

次に起動します:

  • Mac OS X: brew services start elasticsearch
  • Ubuntu: sudo service elasticsearch start

それをテストするために、最も簡単な方法はcurlです。開始には数秒かかることがあるので、最初に応答がない場合は慌てないでください。

curl localhost:9200

応答例:

{
  "name" : "Hydro-Man",
  "cluster_name" : "elasticsearch_gkbonetti",
  "version" : {
    "number" : "2.3.5",
    "build_hash" : "90f439ff60a3c0f497f91663701e64ccd01edbb4",
    "build_timestamp" : "2016-07-27T10:36:52Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.0"
  },
  "tagline" : "You Know, for Search"
}

開発のためのツールの設定

ElasticSearch(ES)を使い始めるときには、データを探索するのに役立つグラフィカルなツールを用意しておくと良いでしょう。 elasticsearch-headと呼ばれるプラグインはこれだけです。インストールするには、次の手順を実行します。

  • どのフォルダESがインストールされているかls -l $(which elasticsearch)ls -l $(which elasticsearch)
  • このフォルダにcdして、プラグインのインストールバイナリを実行します: elasticsearch/bin/plugin -install mobz/elasticsearch-head
  • ブラウザでhttp://localhost:9200/_plugin/head/を開きhttp://localhost:9200/_plugin/head/

すべてが期待どおりに機能していれば、あなたは自分のデータを探索できる素敵なGUIを見ているは​​ずです。

前書き

ElasticSearchには文書化されたJSON APIがありますが、おそらくあなたのためにそれを扱ういくつかのライブラリを使用したいと思うでしょう:

  • Elasticsearch - HTTP APIの公式低レベルラッパー

  • Elasticsearch-rails - ActiveRecordまたはRepositoryパターンのいずれかを使用してRailsモデルとElasticSearchを接続するのに役立つ、高度なRails統合

  • Chewy - 非常に普及しており、間違いなくより良い文書を持っている

接続をテストするための最初のオプションを使用しましょう:

gem install elasticsearch

その後、ルビー端末を起動して試してみてください:

require 'elasticsearch'

client = Elasticsearch::Client.new log: true
# by default it connects to http://localhost:9200

client.transport.reload_connections!
client.cluster.health

client.search q: 'test'

Searchkick

すぐにelasticsearchをセットアップしたい場合は、searchkick gemを使用することができます:

gem 'searchkick'

検索したいモデルにsearchkickを追加してください。

class Product < ActiveRecord::Base
  searchkick
end

検索インデックスにデータを追加します。

Product.reindex

クエリを実行するには、以下を使用します。

products = Product.search "apples"
products.each do |product|
  puts product.name
end

かなり速い、elasticsearchの知識は必要とされません;-)

詳細はこちら: https : //github.com/ankane/searchkick



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow