XWiki (http://xwiki.org) uses ElasticSearch. We're still using an old version of ES: v1.1.1. I've tried in the past to upgrade but it failed. I'm now trying again and this time I want to spend the time it takes to perform this upgrade to conclusion.
By reading the docs I understood that I need to upgrade to 2.x first, before upgrading to 5.x. So I installed 2.4.4 and copied the config/ and data/ dirs. When I restarted ES, I get:
Caused by: java.lang.IllegalArgumentException: Mapper for [_timestamp] conflicts with existing mapping in other types: [mapper [_timestamp] has different [store] values]
I found the reason by reading Upgrade from 1.7.x to 2.2.0 _timestamp mapping issue
Indeed I have 2 types (installs/install and installs/install2) and they're not using _timestamp in a similar way I guess. We probably have the timestamp stored in one type and not in the other.
Now I read that I need to reindex and AFAIU this means moving existing data under a new type, right?
I need some guidance about what to do, provided the following:
- There are several instances of XWiki out there, some using the installs/install type and others using the installs/install2 type. Every day these instances send a ping that gets stored in ES in one of those types.
- Thus we need to continue supporting these types to not break the XWiki instances and still collect the ping data.
- We also have substantial code in various places that queries the XWiki ES instance and thus using the existing types, and thus we would rather not break those codes.
- We can introduce a new type that would be used by new versions of XWiki but globally we need to be able to sum up all the pings from all the types.
What are our options?
Thanks a lot for any guidance