【问题标题】:How do I figure out what found-elasticsearch version is running on heroku?如何确定在 heroku 上运行的 found-elasticsearch 版本?
【发布时间】:2016-05-25 09:12:30
【问题描述】:

Heroku 说我正在运行 elasticsearch 2.2.0 版,但我认为他们错了,这就是为什么...

在本地 2.2.0 上,我的映射包括 payloads: true 定义的 here 选项 - 它们工作得很好。但是,在 heroku 上,我得到了空的回复。如果我删除此选项并根据"2.x" docs 构建映射,则它适用于heroku,但本地响应为空。 2.x 到底是什么意思?如何找到在 heroku 上运行的真实版本?

谢谢。

Found-ElasticSearch:

{
"name": "instance-x",
"cluster_name": "x",
"version": {
"number": "2.2.0",
"build_hash": "1b182b4497d4bba7602085ebd2e59a8a555ad368",
"build_timestamp": "2016-01-14T13:42:27Z",
"build_snapshot": true,
"lucene_version": "5.4.0"
},
"tagline": "You Know, for Search"
}

本地:

{
"name": "Power Princess",
"cluster_name": "elasticsearch_brew",
"version": {
"number": "2.2.0",
"build_hash": "8ff36d139e16f8720f2947ef62c8167a888992fe",
"build_timestamp": "2016-01-27T13:32:39Z",
"build_snapshot": false,
"lucene_version": "5.4.1"
},
"tagline": "You Know, for Search"
}

我注意到 lucene 和 build_snapshot 是不同的。 lucene 版本只有与有效载荷无关的错误修正。那么 build_snapshot 是什么,会影响它吗?

【问题讨论】:

  • 只需查询您的集群并检查版本:elastic_node:9200 输出将保存您的集群的版本。

标签: ruby-on-rails heroku elasticsearch


【解决方案1】:

您可以使用build_hash 值来找出两个版本之间的差异。部署在 Found 上的日期可以追溯到 2016 年 1 月 14 日,而部署在 Heroku 上的日期是 2016 年 1 月 27 日,即 13 天。根据build_snapshot,找到的那个是not a release artifact, but a snapshot artifact

让我们使用上面的构建哈希查看 Github 上的 differences between both artifacts

  • 13 天的提交
  • 49 次提交
  • 191 个更改文件

我们在那里的某个地方找到了提交 db409c99,其中包括 CompletionFieldMapperpayloads field has been added 的更改。

浏览提交,我们可以发现他们必须revert the new completion suggester changes,因为它破坏了其他部分。它将在主要版本 (3.0) 中重新引入。

因此,总而言之,您拥有的本地版本包含 payloads 字段,而您在 Found 上拥有的不包含,这解释了您所看到的行为。

【讨论】:

  • 非常感谢,我们现在知道我们在做什么了。很难相信他们没有在生产中使用稳定的分支。
  • 很高兴它有帮助。是的,但肯定有一些不明确的原因,可能是持续集成;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多