java - Jhipster 自定义弹性搜索映射
问题描述
我正在寻找有关 Jhipster 如何为弹性搜索创建映射的信息。我还想将此映射自定义为两个实体之间关系的默认映射,没有将其类型指定为父或子甚至嵌套。这限制了我如何使用弹性搜索。
例如,我有两个使用以下 jdl 生成的实体:
entity Event {
title String required minlength(1) maxlength(30)
startDate ZonedDateTime required,
endDate ZonedDateTime required
}
entity CustomData{
name String required minlength(1) maxlength(30),
value String required,
filterable Boolean required
}
relationship OneToMany{
Event{aEvent} to CustomData{Event(id)}
}
默认情况下,此关系不会保存到搜索存储库,并且仅允许带有 CustomData 的“子”对象的事件作为对象数组附加。
这是一个外观示例:
{
"id": 28152,
"title": "testWed123",
"startDate": "2019-02-13T10:53:00.798Z",
"endDate": "2019-02-13T10:53:00.798Z",
"customData": [
{
"id": 28202,
"name": "customData1",
"value": "customDataValue1",
"filterable": false,
"event": null
},
{
"id": 28203,
"name": "customData1",
"value": "customDataValue2",
"filterable": true,
"event": null
}
]
}
以下是我如何将这些事件保存到 elasticsearch 存储库:
event.addCustomData(customData1);
eventSearchRepository.save(event);
解决方案
我没有找到使用自定义映射的方法,但是我确实找到了如何使用自动映射来实现上述功能,只需在父类中使用下面的注释来描述关系。
@Field(type = FieldType.Nested, includeInParent = true)
@OneToMany(mappedBy = "event", fetch = FetchType.EAGER, targetEntity = CustomData.class)
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
private Set<CustomData> customData = new HashSet<>();
如果您在索引中放置了任何文档,请使用不同的索引名称,因为它不会生成具有上述信息的新映射。
推荐阅读
- javascript - Error rendering item from state array in React
- pandas - 大熊猫中的过滤器计数
- c# - Threadpool线程什么时候返回线程池
- java - uuidExtra 为 null 如何将其转换为字符串
- sql-server - Pyspark 连接到 Microsoft SQL 服务器?
- ios - SwiftUI 自定义相机视图?
- unix - UNIX - 跨 ssh 测试文件并在原始主机上返回 True
- javascript - 解析嵌套的 JSON 响应 Javascript
- java - BJP5 练习 16.7:deleteBack — 帮助我理解解决方案
- azure - 如何在嵌套模板资源中使用 copyIndex?