1

我发现了这个问题如何使用 Tinkerpop/Blueprints 图形 API 存储和检索不同类型的顶点?

但这对我来说不是一个明确的答案。

例如,如何查询 10 个最新文章与 10 个最近注册用户的 api?暂时搁置图形,因为此堆栈必须能够处理集合/文档范式以及图形范式(这些集合类型的元素之间的关系)。我已经阅读了包括源代码在内的所有内容,并且越来越接近但并不完全在那里。

我读过的最接近的文档是这里的多租户文章:http: //architects.dzone.com/articles/multitenant-graph-applications

但它侧重于使用 gremlin 进行图形隔离和查询,我希望在需要对图形进行分析之前避免这种情况。

我正在考虑在这一点上使用 cassandr/hadoop 并引用图形 id,但我可以看到这让我很痛苦。

4

2 回答 2

1

Tinkerpop/Blueprints 中的索引仅支持基于属性键的精确匹配的简单查找。

如果您想查找最近的 10 篇文章,或带有短语“Foo Bar”的文章,您可能需要使用 Lucene 或 Elastic Search 维护一个外部索引。这些技术使用支持术语/短语查找、范围查询和通配符搜索等的倒排索引。您可以将 vertex.getId() 作为字段存储在索引文档中,以链接回图形数据库中的顶点。

我已经为我的应用程序实现了类似的东西,它使用了一个蓝图数据库(Bitsy)和一个精美的索引(Lucene)。我已经记录了高级设计,以 (a) 使用每隔几秒的批量更新来保持花式索引是最新的,以及 (b) 确保跨图形数据库和花式索引的事务一致性。希望这可以帮助。

于 2013-07-18T16:15:25.193 回答
0

回答我自己的问题 - 答案是索引。

https://github.com/tinkerpop/blueprints/wiki/Graph-Indices

于 2013-02-04T19:14:38.303 回答