2015-02-27 2 views
5

Я использую Sense (плагин Chrome), и мне удалось настроить анализатор, и он работает правильно. Если я выдаю GET (/ media/_settings) в настройках, возвращается следующее.Обновление анализатора в настройках ElasticSearch

{ 
    "media": { 
     "settings": { 
     "index": { 
      "creation_date": "1424971612982", 
      "analysis": { 
       "analyzer": { 
        "folding": { 
        "filter": [ 
         "lowercase", 
         "asciifolding" 
        ], 
        "tokenizer": "standard" 
        } 
       } 
      }, 
      "number_of_shards": "5", 
      "uuid": "ks98Z6YCQzKj-ng0hU7U4w", 
      "version": { 
       "created": "1040499" 
      }, 
      "number_of_replicas": "1" 
     } 
     } 
    } 
} 

Я пытаюсь обновить его, выполнив следующие действия:

Закрытие индекса

выдачи этой команды PUT (удаление фильтра)

PUT /media/_settings 
{ 
    "settings": { 
    "analysis": { 
     "analyzer": { 
     "folding": { 
      "tokenizer": "standard", 
      "filter": [ "lowercase" ] 
     } 
     } 
    } 
    } 
} 

Открытие индекса

Но когда настройки возвращаются, фильтр не удаляется. Не можете ли вы обновить анализатор после его создания?

ответ

6

Краткий ответ: №

Более длинный ответ. Из документов ES:

«Хотя вы можете добавлять новые типы индекса, или добавлять новые поля к типа, вы не можете добавлять новые анализаторы или вносить изменения в существующие полей Если бы вы были. сделайте это, данные, которые уже были проиндексированы, будут неправильными, и ваши поиски больше не будут работать должным образом ».

Лучший способ - создать новый индекс и перенести данные. У некоторых клиентов есть помощники, чтобы сделать это для вас, но это не является частью стандартного Java-клиента.

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/reindex.html

+0

Я подозревал, что это поможет мне, хотя - http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/index-aliases.html –

+1

Это не поможет с перемещением данных - вам все равно нужно написать что-то, чтобы переместить вещи от a до b, прежде чем вы переназначите свой псевдоним на b. Если вы находитесь в Scala, для https://github.com/sksamuel/elastic4s есть помощник. – monkjack

+0

Да, извините, я должен был быть более явным. В принципе, с первого дня вы должны использовать псевдоним для своего индекса, и вы можете использовать API сканирования и прокрутки и массового распространения, чтобы вставлять ваши данные, если вам нужно внести изменения, это то, что я получаю от ваших ответов и документации. –

Смежные вопросы