Сценарий: я пытаюсь проиндексировать данные 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 в эластичный индекс. Пожалуйста, помогите мне с тем, что я делаю не так.




Сообщение об ошибке означает, что вы пытаетесь изменить существующее сопоставление. Однако в Elasticsearch это невозможно. После того, как отображение было создано, его нельзя изменить.
You can't change existing mapping type, you need to create a new index with the correct mapping and index the data again.
Таким образом, вы должны создать новый индекс для создания этого сопоставления. В зависимости от ситуации вы либо
Конечно, в последнем случае вы потеряете все данные в индексе, поэтому подготовьтесь соответствующим образом.