Добавление мультиполя с анализатором в существующее поле в существующий индекс - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть существующий индекс вasticsearch (версия: 5.1.1), в котором есть индекс некоторых документов. Отображение в индексе (скажем, в аппаратном обеспечении) имеет следующее поле:

"biosSerialNumber" :{
     "type":"keyword"
}

Я хочу добавить в него поле с помощью анализатора следующим образом: "biosSerialNumber": {"type": "keyword","fields": {"суффикс": {"type": "text", "analyzer": "abc_analyzer"}}}

Анализатор "abc_analyzer" уже существует в настройках индекса. Это разрешено? Я попытался сделать это с помощью команд PUT, которые я использовал для добавления новых полей в индексе. Но, похоже, это не работает.

Получение этой ошибки:

{"error": {"root_cause": [{"type": "mapper_parsing_exception", "reason": "Определение отображения для [полей] имеет неподдерживаемые параметры: [analyzer: suffix_match_analyzer]"}], "type": "mapper_parsing_exception", "reason": "Определение отображения для [полей] имеет неподдерживаемые параметры: [analyzer: suffix_match_analyzer]"}, "status": 400}

1 Ответ

0 голосов
/ 30 сентября 2019

Как упоминалось в комментарии, ошибка была в том, что я пытался добавить анализатор в поле «ключевое слово», что недопустимо (по очевидной причине, что тип ключевого слова не анализируется) !. Это был пример попытки.

Кроме того, теперь после выполнения запроса PUT:

<elshost>/<index-name>/_mapping/<doc-type>

с телом запроса:

{
    "properties":{
        "asset":{
            "properties" :{
            "biosSerialNumber":{
                "type":"keyword",
                "fields":{
                  "suffix":{
                    "type":"text",
                    "analyzer":"abc_analyzer"
                  }
                }
              }
            }
        }
    }
}

сработало.

Насколько я понимаю, для того, чтобы это вступило в силу для существующих данных на местах, необходимо повторно проиндексировать документы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...