在 Ruby 中使用弹性搜索 gem 时在何处指定集群详细信息
where to specify cluster details when using elastic search gem in Ruby
我想从我的 rails
应用程序访问 Elastic Search Cluster
中的数据。假设服务器 运行 在 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/
作为文档的具体说明,elasticsearch gem 包装 elasticsearch-transport for connecting to a cluster and 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>
我想从我的 rails
应用程序访问 Elastic Search Cluster
中的数据。假设服务器 运行 在 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/
作为文档的具体说明,elasticsearch gem 包装 elasticsearch-transport for connecting to a cluster and 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>