我研究 Tinkerpop 堆栈已经有一段时间了。我想我很清楚它可以做什么以及它适用于哪些数据库。我现在正在考虑几个不同的数据库,但还没有确定。所以我决定把我的代码纯粹写到接口上,现在不考虑任何实现。在我正在查看的数据库中,它们实现了TransactionalGraph
和KeyIndexableGraph
. 我认为这足以满足我的需要,但我只有一个问题。
我有不同的“类”顶点。使用蓝图,我相信通过在每个顶点中包含类名的字段来最好地表示。这样做,我可以做类似的事情graph.getVertices("classname", "User")
,它会给我所有的用户顶点。并且由于该getVertices
函数指定实现应该使用索引,因此我可以保证快速查找(如果我索引该字段)。
但是假设我想根据两个属性检索一个顶点。顶点必须有className=Users
和username=admin
。找到该单个顶点的最佳方法是什么?即使不是所有的顶点都有一个username
字段,是否可以对这两个属性进行索引?
仅供参考 - 我目前考虑的数据库是 OrientDB、Neo4j 和 Titan,但我还没有确定。如果有帮助的话,我目前也计划使用 Gremlin。