我使用过父母&子映射以规范化数据,但据我所知,无法从_parent文档中获取任何字段。
以下是我的索引的映射:
{
"mappings": {
"building": {
"properties": {
"name": {
"type": "string"
}
}
},
"flat": {
"_parent": {
"type": "building"
},
"properties": {
"name": {
"type": "string"
}
}
},
"room": {
"_parent": {
"type": "flat"
},
"properties": {
"name": {
"type": "string"
},
"floor": {
"type": "long"
}
}
}
}
}
现在,我正试图找到在房型中存储flat_name
和building_name
的最佳方式。我不会查询这些字段,但在查询floor
等其他字段时我应该能够获取它们。
将有数百万个房间,我没有太多内存,所以我怀疑这些重复的值可能会导致内存不足。目前,flat_name
和building_name
字段具有"index": "no"
属性,我为_source字段启用了压缩。
您是否有任何有效的建议来避免重复值,例如查询多个查询或hacky方式从_parent文档获取字段或非规范化数据是处理此类问题的唯一方法?