在Ruby中使用弹性搜索gem时,在何处指定集群详细信息

时间:2016-09-13 15:01:55

标签: ruby-on-rails ruby elasticsearch elasticsearch-ruby

我想从Elastic Search Cluster应用程序访问rails中的数据。假设服务器正在http://localhost:9200运行,我想访问终点http://localhost:9200/location/type

以下这个documentation并遇到了这个例子:

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的详细信息?群集正在http://localhost:9200/
  • 运行

1 个答案:

答案 0 :(得分: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>