Я определил следующее отображение индекса для одного из документов:Elasticsearch: Индекс Mapping для массива целых чисел
{
"favorites":{
"_parent":{
"type":"activities"
},
"properties":{
"favorite_count":{
"type":"integer"
},
"details":{
"type":"integer",
"store":"yes"
}
}
}
}
При попытке проиндексировать следующий документ:
{
"favorite_count":3,
"details":[
1, 25, 4
]
}
я получаю следующее исключение:
org.elasticsearch.index.mapper.MapperParsingException: object mapping [details] trying to serialize a value with no field associated with it, current value [1]
at org.elasticsearch.index.mapper.object.ObjectMapper.serializeValue(ObjectMapper.java:595)
at org.elasticsearch.index.mapper.object.ObjectMapper.parse(ObjectMapper.java:467)
at org.elasticsearch.index.mapper.object.ObjectMapper.serializeValue(ObjectMapper.java:599)
at org.elasticsearch.index.mapper.object.ObjectMapper.serializeArray(ObjectMapper.java:587)
at org.elasticsearch.index.mapper.object.ObjectMapper.parse(ObjectMapper.java:459)
at org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:507)
at org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:451)
at org.elasticsearch.index.shard.service.InternalIndexShard.prepareIndex(InternalIndexShard.java:329)
at org.elasticsearch.action.index.TransportIndexAction.shardOperationOnPrimary(TransportIndexAction.java:203)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction.performOnPrimary(TransportShardReplicationOperationAction.java:521)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction$1.run(TransportShardReplicationOperationAction.java:419)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
с этой ссылкой http://www.elasticsearch.org/guide/reference/mapping/array-type/, я считаю, что нет никаких проблем с отображение индекса. Что я делаю не так?
Это похоже на то, что вы пытаетесь передать значения в поле с несовместимым отображением - это сопоставление, которое вы разместили выше того, что возвращает ES, или это то, что вы хотите, чтобы ваше сопоставление было? В любом случае убедитесь, что сопоставление, используемое в настоящее время в ES, соответствует тому, что вы хотите. Похоже, вы пытались обновить карту после того, как у нее уже есть документы. –
Проблема решена. Я неправильно указывал имя типа индекса в остальном, это должно быть «http: // localhost: 9200/test-app/favorites/_mapping», я указывал его как http: // localhost: 9200/test -app/рейтинги/_mapping. – CodePredator