如何使 ElasticSearch 客户端在应用程序范围内可用?
Posted
技术标签:
【中文标题】如何使 ElasticSearch 客户端在应用程序范围内可用?【英文标题】:How do I make ElasticSearch Client available application wide? 【发布时间】:2016-06-12 13:22:54 【问题描述】:我在 Rails 应用程序中使用elasticsearch_ruby
。我选择不使用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. 在您的 Rails 应用程序中的任何位置使用此 $elasticsearch_client
【讨论】:
这就是elasticsearch_ruby用户最接受的方式吗? 我不知道elasticsearch_ruby
的用户。但这是 Redis
用于整个应用程序的方式。
@JohnLinux 随时分享建议解决方案的结果以上是关于如何使 ElasticSearch 客户端在应用程序范围内可用?的主要内容,如果未能解决你的问题,请参考以下文章
(57)ElasticSearch重建索引且保证应用程序不用重启
Elasticsearch:在 Java 客户端应用中管理索引 - Elastic Stack 8.x