这个数据模型是否最适合 TitanDB 中的基本新闻提要?

Is this data model optimal for a basic news feed in TitanDB?

虽然我没有使用 Neo4j,而是使用 TitanDB (IBM Graph),但由于我是图形数据库的新手,所以我使用 Neo4j 文档中建议的模式为基本新闻提要建模,用于现在。

http://neo4j.com/docs/snapshot/cypher-cookbook-newsfeed.html

在完整阅读所有文档后,我知道这些数据库的操作方式之间存在几个关键差异。

在link描述的模型中,每个用户posts被存储为vertexes,通过edges相互连接,形成一长串从每个 user 个顶点发出的状态更新。

虽然考虑到 Neo4j 的功能,这是有道理的,但我知道 TitanDB 具有 vertex-centric 索引功能,详细描述如下:

http://s3.thinkaurelius.com/docs/titan/1.0.0/indexes.html

现在我正在努力确保查询给定的用户提要是最佳的,对于一个有很多用户的大图,并且有很多永久保留的帖子或状态更新。因此,我想避免必须遍历所有用户朋友的所有帖子,然后最后对它们进行排序和限制,只是为了获得用户提要的前 15 项。

因此,我不确定 Neo4j 文档中描述的模型是否真的是与 TitanDB 一起使用的最佳模型,所以我的问题如下:

我真的很想听取一些关于在 Titan DB 中建模、索引和检索基本新闻源的一般建议。提前致谢。

基本模式似乎不是一个坏方法,尽管很难根据这个用例做出好的判断。

解决索引问题的最简单方法可能是稍微非规范化 - 将用户 ID 作为 属性 存储在 post 顶点上,并在 [user, timestamp] 上创建和索引对.

以顶点为中心的索引可能对您有帮助,但在提议的模型中没有帮助 - 您需要将 post 建模为边,将节点建模为顶点,这可能会使其他遍历变得相当尴尬。此外,IBM Graph 在其当前版本中不支持以顶点为中心的索引。