簡體   English   中英

Elasticsearch:整數數組的索引映射

[英]Elasticsearch : Index Mapping for integer array

我為其中一個文檔定義了以下索引映射:

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

如果您具有父/子關系,則在索引子文檔時需要指定父項。 請參閱此處的Elasticsearch文檔: http ://www.elasticsearch.org/blog/managing-relations-inside-elasticsearch/您沒有說過如何索引這些文件; 通過curl它應該看起來像這樣,其中activity-id是此收藏夾的父文檔的ID:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM