[英]ElasticSearch withJava API - Mapping a complicated class with from a class or existing object
我的课程-“交易”非常复杂,其中包含许多嵌套对象。 有没有一种方法可以直接从类或现有对象定义映射?
注意:我将其余API与高级别客户端一起使用。 如果只有低级客户端有解决方案,ist也可以。
谢谢
可能无法直接从类或现有对象定义映射。 我所做的是将每个对象转换为JSON字符串,并将其存储为一个String字段。
码:
// Using jackson
ObjectMapper mapper = new ObjectMapper();
String transactionAsJson = mapper.writeValueAsString(transaction);
clientService.insertObjectToDb(transactionData.getHash(), transactionAsJson,
TRANSACTION_INDEX_NAME, TRANSACTION_OBJECT_NAME );
public String insertObjectToDb(Hash hash, String objectAsJsonString, String index, String objectName) throws IOException {
IndexResponse indexResponse = null;
try {
IndexRequest request = new IndexRequest(
index,
INDEX_TYPE,
hash.toString());
request.source((jsonBuilder()
.startObject()
.field(objectName, objectAsJsonString)
.endObject()));
indexResponse = restClient.index(request, RequestOptions.DEFAULT);
} catch (Exception e) {
log.error(e.getMessage());
} finally {
return indexResponse.toString();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.