2013-09-27 31 views
1

我已經定義了以下索引映射文件的一個索引映射例外:Elasticsearch:整數數組

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/,我相信這是沒有問題的索引映射。我究竟做錯了什麼?

+0

它聽起來像你試圖將值推入具有非兼容映射的字段 - 是您在ES返回上面發佈的映射,還是您希望映射爲什麼?無論哪種情況,請確保ES中當前使用的映射與您希望的映射匹配。這聽起來像你試圖在已經有文件後更新映射。 –

+0

問題已解決。我給索引類型名稱在其餘的api url中是錯誤的,它應該是'http:// localhost:9200/test-app/favorites/_mapping',我將它作爲http:// localhost:9200/test -app /評級/ _mapping。 – CodePredator

回答

0

問題已解決。我給索引類型名稱在其他api url中是錯誤的,它應該是'localhost:9200/test-app/favorites/_mapping';我將它作爲localhost:9200/test-app/ratings/_mapping提供。

2

當您有父/子關係時,需要在索引子文檔時指定父項。請看這裏的Elasticsearch文檔:http://www.elasticsearch.org/blog/managing-relations-inside-elasticsearch/你沒有說你是如何編制索引的;通過捲曲它應該是這樣的,其中activity-id是這個喜愛的父文件的ID:

curl -XPOST localhost:9200/favorites?parent=activity-id -d' 
{ 
     "favorite_count":3, 
     "details":[ 
      1, 25, 4 
     ] 
}'