我正在创建一个SpringBoot应用程序,我需要在Elastic Search中输入JSON模式。 JSON模式将位于我的资源文件夹中(在我的类路径中)。如何使用REST模板输出原始JSON文件。
任何帮助?“因为互联网上的大多数示例都假设我们有一个要发送的POJO类。但是在这里我不知道JSON模式。我需要使用原始JSON文件发出请求。< / p>
答案 0 :(得分:2)
假设json架构包含索引的映射/设置。然后你可以把映射如下所示:
CreateIndexRequestBuilder createIndexRequestBuilder = client.admin().indices().prepareCreate(index);
// CREATE MAPPING
String mapping_json = new String(Files.readAllBytes(json_mapping_path));
createIndexRequestBuilder.addMapping("my_mapping", mapping_json);
CreateIndexResponse indexResponse = createIndexRequestBuilder.execute().actionGet();
答案 1 :(得分:1)
对于create index,如果您希望json不会被更改,请不要担心索引映射json,您可以使用此代码直接创建文档
for(listObject lObject:list){
XContentBuilder json;
try {
json = XContentFactory.jsonBuilder();
json.startObject();// Main Object Start
json.field(GlobalSearchCosntants.DOCUMENT_ID, lObject.getId());
json.field(GlobalSearchCosntants.DOCUMENT_NAME, lObject.getName());
json.field(GlobalSearchCosntants.DOCUMENT_TYPE, lObject.getType());
json.endObject();// Main Object Start
}catch (IOException e1) {
logger.error("Problem while creating document " + e1.getMessage());
}
client.prepareIndex(INDEX_NAME, GlobalSearchCosntants.INDEX_TYPE, id)
.setSource(json).execute().actionGet();
}