Elastic Search breaking changes in 6.x &beyond


Well-known member
I know this'll impact my own add-ons, and I'll need to wait till XFES ElasticSearch 6.x compatible version comes out before I can update them.

Perfect timing for XES 2.0?
XF1.x will still be supported in by the time ElasticSearch +6.x comes out, so not really :p


Well-known member
Changes like this are never perfect timing. Sure it's not insurmountable but it's a horrendously large change.
XF1.x will still be supported in by the time ElasticSearch +6.x comes out, so not really :p
I'm sure the coding changes will be large, but the high-level logic seems straightforward and reasonable/easy for XF.
  • XFES 2.0 removes/replaces multiple types, supporting and being ready for ES 6.x +
  • XFES 1.x is deprecated/incompatible with ES 6.x + supporting only up to ES 5.x
This way, XF{ES} 2 only needs to prep for ES 6.x. I think it's reasonable and fair for XF to say that XFES 1.x only supports ES 5.x. Of course, that presumes that XFES 2.0 is only (going to be?) compatible with XF 2.0, and not backwards to XF 1.5
Last edited:


XenForo developer
Staff member
Both XFES 2.0 and 1.1.7 will support Elasticsearch 6. It's possible XFES 1.1.7 will support Elasticsearch 7 because of these changes, but it's unlikely that we will officially support that version, though we can only guess based on their published deprecation approach. We would certainly intend XFES 2.x to support Elasticsearch 7 (and 8) when those versions exist.

In terms of the changes we made, where necessary, we will still be using one index so the behavior is basically unchanged from previous Elasticsearch versions. We will now track the type within a field in the index for relevant versions (for anyone running ES6 with the new requirements, which doesn't include indexes created in ES5). This will be invisibly handled in most index-related operations so existing indexation code should continue to work in many cases. Searching and limiting to a specific type requires a different set of filters, but if you use the core XFES code to do this, it will handled for you.