2015-11-16 74 views
0

嘗試設置映射我收到此錯誤..彈性錯誤而設置映射

壓縮機檢測只能叫上一些xcontent字節或壓縮xcontent字節

XContentBuilder mapping = XContentFactory.jsonBuilder() 
        .startObject("mydocuments") 
        .startObject("mytype") 
        .startObject("properties") 
        .startObject("blob_field") 
        .field("type", "string") 
        .field("index", "not_analyzed") 
        .endObject() 
        .endObject() 
        .endObject() 
        .endObject(); 
      PutMappingResponse putMappingResponse = client.admin().indices() 
        .preparePutMapping("mydocuments") 
        .setType("mytype") 
        .setSource(mapping) 
        .execute().actionGet(); 

回答

0

這是與Elasticsearch 2.0 ?在2.0中,它們不再遮蔽依賴關係。將所需的Jackson依賴關係添加到您的類路徑中,並且可能會解決錯誤。

0

您需要將映射對象轉換爲字符串第一

XContentBuilder mapping = XContentFactory.jsonBuilder() 
       .startObject("mydocuments") 
       .startObject("mytype") 
       .startObject("properties") 
       .startObject("blob_field") 
       .field("type", "string") 
       .field("index", "not_analyzed") 
       .endObject() 
       .endObject() 
       .endObject() 
       .endObject(); 

     PutMappingResponse putMappingResponse = client.admin().indices() 
       .preparePutMapping("mydocuments") 
       .setType("mytype") 
       .setSource(mapping.string())  <---- transform to string 
       .execute().actionGet(); 
+0

@ user3549576你可以試試這個嗎? – Val

1

您可以打印您的要求的身體和嘗試在命令行?嘗試打印此:

client.admin().indices() 
       .preparePutMapping("mydocuments") 
       .setType("mytype") 
       .setSource(mapping)