跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

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

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

问题:

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

答案:

一种设计方案是使用以下表结构:MongoDB For Windows v3.5.4 MongoDB For Windows v3.5.4下载

主表:

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 中,但搜索效率可能受到限制。

相关文章