1

我正在尝试了解 Blazegraph。目前我很困惑如何优化简单的查找。

假设我所有的顶点都有一个id唯一的属性。此属性由用户设置。有什么方法可以加快找到特定顶点的速度,id同时仍然坚持使用 Tinkerpop API?

此处定义的搜索 API是唯一的方法吗?

我以前的经验是在TitanDB中,在 Titan 的情况下,可以定义一个索引,Tinkerpop API 可以完美地集成。有什么方法可以在不使用搜索 API 的情况下在 Blazegraph 中实现相同的结果?

4

1 回答 1

1

中间遍历 V() 是否使用索引取决于 a) 是否存在合适的索引和 b) 特定图形系统提供者是否实现了此功能。

Gremlin (Tinkerpop) 没有指定如何设置索引,尽管文档提供了如下内容

graph.createIndex("username",Vertex.class)

但可能保留给ThinkerGraph 实现,事实上它说

每个图形系统都有不同的机制来定义索引和模式。TinkerPop3 在这方面不需要任何一致性。在 TinkerGraph 中,唯一的定义是围绕索引。对于其他图形系统,可能需要先定义属性值类型、索引、边标签等,才能将数据添加到图形中。

Neo4J有一个例子

TinkerPop3 不提供用于为底层图形系统定义模式/索引的方法接口。因此,为了创建索引,直接调用 Neo4j API 很重要。

但是该插件的代码非常具体

graph.cypher("CREATE INDEX ON :person(name)")

请注意,对于 BlazeGraph ,搜索使用内置的全文索引

于 2017-01-25T15:51:39.590 回答