0

アプリケーションElastic Search Clusterからデータにアクセスしたい。railsサーバーがで実行されていてhttp://localhost:9200、エンドポイントにアクセスしたいとしましょうhttp://localhost:9200/location/type

このドキュメントに続いて、この例に出くわしました:

require 'elasticsearch'

client = Elasticsearch::Client.new log: true

client.cluster.health

client.index index: 'my-index', type: 'my-document', id: 1, body: { title: 'Test' }

client.indices.refresh index: 'my-index'

client.search index: 'my-index', body: { query: { match: { title: 'test' } } }

質問:

  • elasticsearch clusterコードのどこで my の詳細を定義しますか? クラスターはで実行されていますhttp://localhost:9200/
4

1 に答える 1

1

ドキュメントの仕様として、elasticsearch gem は、クラスターに接続するためのelasticsearch-transportと、elasticsearch API にアクセスするためのelasticsearch-apiをラップします。elasticsearch-transport のドキュメントから、

最も単純な形式では、構成なしでhttp://localhost:9200で実行されている Elasticsearch に接続します。

したがって、基本的にclient = Elasticsearch::Client.new log: trueは、デフォルトで localhost:9200 (Rails アプリと同じマシン) で実行されているクラスターに接続します。

接続を確立してから実行してみるとclient.cluster.health、成功したかどうかがわかります。

さらに、クラスターが別のサーバーで実行されている場合は、次を使用して接続できます。

es = Elasticsearch::Client.new host: http(s)://<path-to-cluster-server>
于 2016-09-13T16:23:54.360 に答える