Где указать детали кластера при использовании эластичного поискового гема в Ruby

Я хочу получить доступ к данным в 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/

1 ответ

Решение

Как указано в документации, самоэластичный драгоценный камень включает в себя эластичный поиск-транспорт для соединения с кластером и эластичный поиск-API для доступа к API эластичного поиска. Из документации эластичного поиска-транспорта,

В простейшей форме подключитесь к Elasticsearch, работающему по http://localhost:9200/ без какой-либо конфигурации:

В общем, client = Elasticsearch::Client.new log: true по умолчанию подключится к кластеру, работающему на локальном хосте:9200 (на той же машине, что и ваше приложение Rails).

Идите и попробуйте выполнить client.cluster.health после установления соединения, и вы узнаете, если это удалось или нет.

Более того, если ваш кластер работает на другом сервере, вы можете использовать следующее для подключения к нему:

es = Elasticsearch::Client.new host: http(s)://<path-to-cluster-server>
Другие вопросы по тегам