Как сделать ElasticSearch Client доступным для всего приложения?

Я использую elasticsearch_ruby в приложении Rails. Я решил не использовать elasticsearch_rails потому что я не хочу такой тесной интеграции с моими объектами ActiveRecord.

С помощью elasticsearch_ruby а также elasticsearch_transport, новый клиент создается так:

client = ElasticSearch::Client.new(log:true)

Как сделать это приложение доступным для клиента? Я хочу создать экземпляр только один раз, а затем использовать его во всем приложении.

Какова лучшая практика для этого?

Кажется, что-то очевидно, что я скучаю.

1 ответ

Решение

Используйте инициализатор
1. Создайте файл под configuration/initializer/elasticsearch.rb
2. Инициализируйте своего клиента как $elasticsearch_client=ElasticSearch::Client.new(log:true)
3. Используйте это $elasticsearch_client в любом месте вашего приложения рельсы

Другие вопросы по тегам