我正在研究数据库工具,我不太确定弹性如何能够满足我的需求。
我有一个树数据结构,一个家族树。
根是第一个人亚当,然后是他的孩子,还有孩子等等。
元素看起来如下(不关心婚姻关系-这些数据只是为了得到想法):
{
id: 1
name: “Adam”
parentId: 0
}, {
id: 2
name: “Cain”
parentId: 1
}, {
id: 3
name: “Abel”
parentId: 1
}, {
id: 4
name: “johnny(Cain junior)”
parentId: 2
}, … {
id: 12324568
name: “Cain b”
parentId: 1434
}我想要执行的查询:
最后,我的问题是:
发布于 2017-02-16 10:54:10
回答你的问题:
3)索引映射可能如下所示:
{
"mappings": {
"my_index": {
"properties": {
"id": {
"type": "integer",
"fielddata": true <-- you need this if you're using this field for aggregations
},
"parentId": {
"type": "integer"
},
"name": {
"type": "text" <-- can be text/keyword depending on your requirement
}
}
}
}
}2)我建议您使用亲子映射,这样您就可以拥有一对多的关系。Elasticsearch维护父母如何与其子女通信的映射,而且查询时联接由于此映射而快速。您可以阅读这个所以,以了解嵌套的父-子映射的基准。
1)只要将full text字段的类型映射为text,就可以始终执行搜索。这应该可以帮助您识别使用text而非keyword类型的区别。可以向索引中添加单个文档,也可以使用包含多个文档的散装添加。这与其他CRUD操作并驾齐驱。当您通过父id请求文档时,我仍然不知道层次树会如何响应。
希望这能有所帮助!
https://stackoverflow.com/questions/42269678
复制相似问题