TinkerPop蓝图和框架 - 如何将数据视为集合

时间:2013-01-24 05:00:50

标签: graph neo4j orientdb titan

我发现了这个问题How to store and retrieve different types of Vertices with the Tinkerpop/Blueprints graph API?

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

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

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

但是它专注于使用gremlin进行图形分离和查询,我希望避免这种情况,直到我需要对图表进行分析。

我正在考虑在这一点上使用cassandr / hadoop并引用图形ID,但我可以看到这一点让我感到困惑。

2 个答案:

答案 0 :(得分:1)

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

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

我已经为我的应用程序实现了类似的东西,它使用了Blueprints数据库(Bitsy)和一个花哨的索引(Lucene)。我已经记录the high-level design到(a)每隔几秒钟使用批量更新保持花式索引最新,以及(b)确保图形数据库和花式索引之间的事务一致性。希望这可以帮助。

答案 1 :(得分:0)

回答我自己的问题 - 答案是指数。

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