elasticsearch-ruby:转换
Posted
技术标签:
【中文标题】elasticsearch-ruby:转换【英文标题】:elasticsearch-ruby: transforms 【发布时间】:2021-12-13 18:26:53 【问题描述】:我们可以读到elasticsearch-ruby CHANGELOG (Vewsion 7.7.0) 我们有新的 API 端点可用。包括转换。 Here they are.
我们使用的是 elasticsearch-ruby 7.15.0。但是不知道怎么用。
这是我的例子...
require 'elasticsearch'
elasticsearch = Elasticsearch::Client.new(
cloud_id: '******',
user: '******',
password: '******',
log: false
)
elasticsearch.transform.stop_transform transform_id: 'my_transform'
但是我们得到一个错误...
/usr/local/rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/elasticsearch-7.15.0/lib/elasticsearch.rb:43:in `method_missing': undefined method `transform' for #<Elasticsearch::Client:0x0000556a2ad72bb8> (NoMethodError)
它位于文件夹 /lib/elasticsearch/api/actions 中的代码。就像索引一样。
我们可以使用这样的索引...
if elasticsearch.indices.exists? index: 'mi_index'
<do what ever we want>
end
我们在 de doc 中找不到任何内容。 https://rubydoc.info/gems/elasticsearch-api/Elasticsearch/API
那么,我们如何使用变换端点呢?
【问题讨论】:
【参考方案1】:Thanks to @picandocodigo.
elasticsearch-xpack gem 已被弃用,其端点(如 转换命名空间下的那些)被合并到 elasticsearch-api,但仅适用于 main 和 8.x 版本。在 7.x 中 客户端的版本,您仍然需要安装并要求 弹性搜索-xpack gem。 7.15可以看代码here。
所以你需要做类似的事情:
require 'elasticsearch'
require 'elasticsearch/xpack'
client = Elasticsearch::Client.new
client.transform.stop_transform(transform_id: 'my_transform' )
【讨论】:
以上是关于elasticsearch-ruby:转换的主要内容,如果未能解决你的问题,请参考以下文章