• Type: Task
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.6.0.Beta3
    • Fix Version/s: 5.8.0.Beta1
    • Component/s: backend-elasticsearch
    • Labels:


      Adding a ticket, since I'm working on it. I will update the required changes below as I find new ones.

      Potential blockers:

      • Support for specifying analyzers in elasticsearch.yml has been removed: we have to use the Rest API to declare analyzers (see HSEARCH-2219 Closed )
      • Analyzer definitions are now index-scoped so you can't declare global analyzers and have to declare the analyzers for each index (more or less each Hibernate root entity); this is highly inconvenient. This makes solving HSEARCH-2219 Closed all the more important: expecting users to declare analyzers themselves on the Elasticsearch server is now a no-no (see comments on this ticket).

      External work required:

      Changes that would require to drop support for 2.0 (or to introduce dialects):

      • The string datatype disappeared and has been replaced by text and keyword. What we need is probably text, except for non-anlyzed fields that must be keyword s (as text fields have to be analyzed).
      • null_value is no longer supported on the text datatype: we currently use it for the indexNullAs feature
      • sorting on text fields now requires enabling data loading in the mapping
      • DeleteByQuery is a core feature again, with its own API. The plugin has been removed.
      • The default scripting language is now Painless, which is very similar to Groovy (only script parameters must be prefixed with params.)
      • For projections, the "fields" keyword when querying is now "stored_fields" and using "_source" in there is disallowed. Source filtering must be used to access the _source. e.g. ?_source_include=foo
      • arcDistanceInKm has been renamed to arcDistance and now returns meters:

      Changes that will probably also work with ES 2.x (see HSEARCH-2437 Closed ):

      • "filtered" queries are no longer supported and must be replaced by "bool" queries with a "must" and a "filter"
      • the "queryString" keyword for query string queries does not work anymore, we must use "query_string" (I wonder why we didn't in the first place)
      • The syntax we used with ES 2 for search scripts ("script_fields:"{"_distance":{"params": {...}, "script": "..." }}) seems off with the documentation and doesn't work in ES 5.
      • the size parameter in bucket aggregation queries (used for facetting) used to accept a 0 value, meaning "Integer.MAX_VALUE". It was a deprecated feature and it's not possible anymore. See
      • HSEARCH-2414 Closed affects Elasticsearch 5.0 too (not only 2.4.1).

      See my branch where I'm poking around to see what needs to be done:


          Issue links



              • Assignee:
                yrodiere Yoann Rodière
                yrodiere Yoann Rodière
              • Votes:
                1 Vote for this issue
                8 Start watching this issue


                • Created: