0

Heroku says I am running elasticsearch version 2.2.0 but I think they are wrong and here is why...

Locally on 2.2.0, my mappings include the payloads: true option as defined here - and they work just fine. However, on heroku I get empty responses. If I remove this option and construct the mapping in accordance with the "2.x" docs then it works on heroku but responses are empty locally. What does 2.x mean exactly? How can I find the real version running on heroku?

Thank you.

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"
}

Local:

{
"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"
}

I notice lucene and build_snapshot are different. The lucene version only has bugfixes that are nothing to do with payloads. So what is the build_snapshot and could that be affecting it?

Jake Cattrall
  • 461
  • 4
  • 20
  • Just query your cluster and check for the version: http://elastic_node:9200 output will hold the version of your cluster. – Tomer Feb 14 '16 at 14:33

1 Answers1

2

You can use the build_hash values in order to figure out the difference between both builds. The one deployed on Found dates back from January 14th, 2016 and the one on Heroku from January 27th, 2016, i.e. 13 days. According to build_snapshot, the one on Found is not a release artifact, but a snapshot artifact.

So let's look at the differences between both artifacts on Github using the build hashes above:

  • 13 days worth of commits
  • 49 commits
  • 191 changes files

And somewhere in there we find the commit db409c99 which includes changes in the CompletionFieldMapper and the payloads field has been added.

Glancing through the commits, we can find that they had to revert the new completion suggester changes because it was breaking other parts. It will be re-introduced in a major version (3.0).

So, to sum up, the local version you have includes the payloads field, while the one you have on Found doesn't, which explains the behavior you're seeing.

Community
  • 1
  • 1
Val
  • 207,596
  • 13
  • 358
  • 360