Ошибка при индексировании данных в эластичный с помощью Java

Сценарий: я пытаюсь проиндексировать данные json в эластичный. Я получаю сообщение об ошибке

17:13:38.146 [main] ERROR com.opnlabs.lighthouse.elastic.ElasticSearchIndexer - {"root_cause":[{"type":"illegal_argument_exception","reason":"Can't merge a non object mapping [map.audits.map.font-size.map.details.map.items.myArrayList.map.selector] with an object mapping [map.audits.map.font-size.map.details.map.items.myArrayList.map.selector]"}],"type":"illegal_argument_exception","reason":"Can't merge a non object mapping [map.audits.map.font-size.map.details.map.items.myArrayList.map.selector] with an object mapping [map.audits.map.font-size.map.details.map.items.myArrayList.map.selector]"}

Что вызывает проблему? Пожалуйста помоги

Код

JSONObject newJsonObject = new JSONObject();
            JSONObject log = jsonObject.getJSONObject("audits");
            JSONObject log1 = jsonObject.getJSONObject("categories");
            newJsonObject.put("audits", log);
            newJsonObject.put("categories", log1);
            newJsonObject.put("timeStamp", time);
            Index index = new Index.Builder(newJsonObject).index(mongoIndexName+"1").type("data").build();
            DocumentResult a = client.execute(index);

В основном я пытаюсь добавить 3 значения json в эластичный индекс. Пожалуйста, помогите мне с тем, что я делаю не так.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
92
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сообщение об ошибке означает, что вы пытаетесь изменить существующее сопоставление. Однако в Elasticsearch это невозможно. После того, как отображение было создано, его нельзя изменить.

Как пояснил сам Шей Бэнон:

You can't change existing mapping type, you need to create a new index with the correct mapping and index the data again.

Таким образом, вы должны создать новый индекс для создания этого сопоставления. В зависимости от ситуации вы либо

  • создать дополнительный индекс или
  • удалить текущий индекс и заново создать его с нуля.

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

Взято отсюда: Невозможно объединить сопоставление объектов без сопоставления с ошибкой сопоставления объектов в модуле машинного обучения (бета).

Другие вопросы по теме