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在代码中的详细信息?集群运行在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 回答