如何高效存储和搜索海量对象-属性-值三元组?

如何高效存储和搜索海量对象-属性-值三元组?

海量对象-属性-值三元组存储与搜索

随着数据的激增,高效存储和搜索海量的对象-属性-值三元组至关重要。本文探讨了如何设计表的结构来解决此问题。

问题:如何存储海量的对象-属性-值三元组,同时保持搜索效率?

答案:

一种设计方案是使用以下表结构:

  • 主表:rel_id (int), obj_id (int), prop_id (int), val_type (int)
  • 对象描述表:obj_id (int),obj_desc (string)
  • 属性描述表:prop_id (int),prop_desc (String)
  • 值表:rel_id (int),类型相关的字段(例如 val_bool 为布尔值)

这种方法允许灵活地添加新属性,并且可以使用主表的 val_type 字段存储不同类型的值。

探索其他选项:

  • mongodb提供高度自定义的文档存储,可以使用 json 来表示属性和值,但模糊查询需要 elasticsearch
  • 维基数据:将属性存储在 JSON 中,但搜索效率可能受到限制。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容