gpt4 book ai didi

java - 如何使用 Elastic Search Java API 设置父/子关系?

转载 作者:行者123 更新时间:2023-11-30 08:33:59 25 4
gpt4 key购买 nike

我正在尝试使用 Elastic Search Java API 创建两个文档,一个构建另一个的子文档。

我的代码看起来像这样:

public void createRecord(Road road, Car car) throws Exception{
ObjectMapper objectMapper = new ObjectMapper();

String roadJson = objectMapper.writeValueAsString(road);
String carJson = objectMapper.writeValueAsString(car);

Client client = TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));

IndexResponse response = client.prepareIndex("myIndex", "roadType").setSource(roadJson).get();

client.prepareIndex("myIndex", "carType").setParent(response.getId()).setSource(carJson).get();
}

这段代码成功地创建了一个道路文档,但是当它去创建一个汽车文档时,我得到了错误:

java.lang.IllegalArgumentException: Can't specify parent if no parent field has been configured

如何正确创建两个与 ES Java API 形成父/子关系的 Elastic 文档?

最佳答案

看起来您没有配置“carType”映射以将“roadType”指定为父级。

"mappings": {
"roadType": {
"properties": {
}
},
"carType": {
"_parent": {
"type": "roadType"
},
"properties": {
"make": {
"type": "string"
},
"model": {
"type": "string"
}
}
}
}

有关详细信息,请参见此处:https://www.elastic.co/guide/en/elasticsearch/guide/current/parent-child-mapping.html

关于java - 如何使用 Elastic Search Java API 设置父/子关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39133079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com