有两个数据库表product_detail(A)和product_online_date(B)表,是A对B是一对多的关系,想把这两个表数据存到ElasticSearch,构建父子关系。代码写的如下:
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(
new TransportAddress(InetAddress.getByName("127.0.0.1"),9300));
XContentBuilder relationMapping = JsonXContent.contentBuilder().startObject()
.startObject("mappings")
.startObject("product").endObject()
.startObject("online_date")
.startObject("_parent").field("type", "product").endObject()
.endObject().endObject().endObject();
PutMappingRequest pmr = Requests.putMappingRequest("products").source(relationMapping);
client.admin().indices().putMapping(pmr).actionGet();
报错信息如下:
{"mappings":{"product":{},"online_date":{"_parent":{"type":"product"}}}}
org.elasticsearch.action.ActionRequestValidationException: Validation Failed: 1: mapping type is missing;
at org.elasticsearch.action.ValidateActions.addValidationError(ValidateActions.java:26)
at org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest.validate(PutMappingRequest.java:93)
at org.elasticsearch.action.TransportActionNodeProxy.execute(TransportActionNodeProxy.java:46)
at org.elasticsearch.client.transport.TransportProxyClient.lambda$execute$0(TransportProxyClient.java:60)
at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:250)
at org.elasticsearch.client.transport.TransportProxyClient.execute(TransportProxyClient.java:60)
at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:371)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:405)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:394)
at org.elasticsearch.client.support.AbstractClient$IndicesAdmin.execute(AbstractClient.java:1247)
at org.elasticsearch.client.support.AbstractClient$IndicesAdmin.putMapping(AbstractClient.java:1494)
at com.mei.choose.elasticsearch.ElasticSearchService.main(ElasticSearchService.java:69)
求教大神,怎么才能正确建立父子关系模型