gpt4 book ai didi

elasticsearch - Elasticsearch 深树模型

转载 作者:行者123 更新时间:2023-12-02 22:23:22 24 4
gpt4 key购买 nike

我正在研究数据库工具,但我不确定Elastic如何满足我的要求。

我有一个树数据结构,一棵家谱。

根源是第一个人亚当,其次是他的 child ,还有 child 等等。

元素看起来像这样(不要为了得到这个想法而在乎这些数据的婚姻关系):

{
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
}

我要执行的查询:

在元素名称上搜索
  • “全文本”,响应应包括文档及其路径。例如,搜索“该隐”应重放:

    一种。亚当/该隐

    b。 ../David/Danny/Cain b
  • 通过ID的CRUD人(id是唯一的)
  • 通过id获取家谱,将以“id”作为根
  • 响应分层树(嵌套JSON)
  • 树的深度约为20-30级,最多10,000个元素

  • 最后,我的问题是:
  • elasticsearch可以为我提供此功能吗?
  • 我应该使用 parent / child 方案吗?
  • 索引映射应如何显示。
  • 最佳答案

    要回答您的问题:

    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)我建议您使用 parent-child映射,以便可以建立一对多关系。 Elasticsearch维护了 parent 与子女的对应关系图,并且由于这种映射,查询时间联接很快。您可以阅读此 SO来了解嵌套上的父子映射基准。

    1)只要您将字段的映射 键入作为 文本,就可以始终进行 full text搜索。 This应该帮助您确定使用 textkeyword的区别。您可以将一个文档添加到索引中,否则可以添加一个包含多个文档的 bulk添加。这也与其他CRUD操作并驾齐驱。我仍然不知道当您通过父ID请求文档时,层次树将如何响应。

    希望这可以帮助!

    关于elasticsearch - Elasticsearch 深树模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42269678/

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