Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.6.0.Alpha3, 5.6.0.Beta3
    • Fix Version/s: 5.6.0.CR1, 5.7.0.Beta2
    • Component/s: elasticsearch
    • Labels:
      None

      Description

      Defining analyzer or any index.* properties in elasticsearch.yml is deprecated and will not work in Elasticsearch 5 (next version after 2.3).
      We should move away from using this approach and instead incorporate the Analyzer definition during the create index phase.
      Here is the API for it https://www.elastic.co/guide/en/elasticsearch/reference/2.3/indices-update-settings.html#update-settings-analysis

      This will work for all the analyzer def based on reasonable default implementations of Lucene / Elasticsearch. Each tokenizer and filter and char set can be given a name.
      One can also pass a fully qualified class name instead of the short name (to be verified)

      What about custom implementations of Tokenizer / Filter. The natural way in Elasticsearch is to write and deploy a plugin which contains a small implementation enlisting the tokenizers or filter by name and the actual implementations in a Jar. The main gotcha is that implementation classes must implement Elasticsearch interfaces.

      How far should we help users deploy their custom analyzer implementations :

      • build the plugin distro?
      • check the presence of the named analyzers or components (which ES API)?
      • change Analyzerdef to adopt a string based name solution like Elasticsearch?

        Attachments

          Issue links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: