2016-01-12 29 views
1

我試圖張貼_bulk後到彈性搜索,但它拋出:彈性體積錯誤:無法解析

{ 
    "took": 1, 
    "errors": true, 
    "items": [ 
     { 
     "index": { 
      "_index": "quick", 
      "_type": "parts", 
      "_id": "ACI250-2016", 
      "status": 400, 
      "error": { 
       "type": "mapper_parsing_exception", 
       "reason": "failed to parse [part]", 
       "caused_by": { 
        "type": "number_format_exception", 
        "reason": "For input string: \"250-2016\"" 
       } 
      } 
     } 
     } 
    ] 
} 

這裏就是我試圖發佈:

POST _bulk 
{"index":{"_index":"quick","_type":"parts","_id":"ACI250-2016"}} 
{"eMfg":"ACI","part":"250-2016"} 

而地圖是:

{ 
    "quick": { 
     "mappings": { 
     "parts": { 
      "properties": { 
       "app": { 
        "type": "string" 
       }, 
       "eMfg": { 
        "type": "string" 
       }, 
       "fPart": { 
        "type": "long" 
       }, 
       "oPart": { 
        "type": "string" 
       }, 
       "ofPart": { 
        "type": "string" 
       }, 
       "part": { 
        "type": "long" 
       }, 
       "price": { 
        "type": "double" 
       }, 
       "title": { 
        "type": "string" 
       } 
      } 
     } 
     } 
    } 
} 
+0

當用'GET/quick/_mapping'檢索映射時,你會得到什麼? 'part'可能是你的映射中的一個數字,你試圖給它一個字符串。 – Val

+0

字段部分的映射是什麼? – ChintanShah25

+3

你去了哪裏:'part'有'long'類型,你正在嘗試發送''250-2016''。原因可能是你在某個時候發送了一個文檔,其中一部分是一個數字,並且映射是在那個時候創建​​的。 – Val

回答

6

根據你的映射,part有類型long和你試圖發送"250-2016"。原因可能是您在某個時候發送了一份文件,其中有一部分可以被強制處理,例如"250"現在你正試圖發送一個字符串,它失敗了。

最好的方法是使用上面的映射來定義具有正確映射類型的新索引(請參見下文),然後您可以再次嘗試批量導入。

DELETE /quick 

PUT /quick 
{ 
     "mappings": { 
     "parts": { 
      "properties": { 
       "app": { 
        "type": "string" 
       }, 
       "eMfg": { 
        "type": "string" 
       }, 
       "fPart": { 
        "type": "long" 
       }, 
       "oPart": { 
        "type": "string" 
       }, 
       "ofPart": { 
        "type": "string" 
       }, 
       "part": { 
        "type": "string"  <-- change this 
       }, 
       "price": { 
        "type": "double" 
       }, 
       "title": { 
        "type": "string" 
       } 
      } 
     } 
     } 
} 
+0

謝謝!對於想要了解更多[彈性映射](https://www.elastic.co/guide/en/elasticsearch/guide/current/mapping-intro.html)的其他人。 –

+0

很高興幫助!映射確實是ES的一個非常重要的組成部分,一個在ES上需要認真工作的人需要了解他們的工作方式。 – Val