我正在尝试了解Blazegraph。目前,我很困惑如何优化简单的查找。
假设我的所有顶点都有一个属性REGEXP_REPLACE(DebugData, r'[^a-zA-Z], ' ')
,这是唯一的。此属性由用户设置。有没有办法加速找到特定id
的顶点,同时仍然坚持使用Tinkerpop API?
搜索API定义here是唯一的方法吗?
我以前的经验是在TitanDB,在Titan的情况下,可以定义一个Tinkerpop API完美整合的索引。有没有办法在不使用Search API的情况下在Blazegraph中获得相同的结果?
答案 0 :(得分:0)
中间遍历V()是否使用索引取决于a) 是否存在合适的索引和b)特定的图形系统 提供商实现了这一功能。
Gremlin(Tinkerpop)未指定how to set indexes,尽管文档提供了like the following
graph.createIndex("username",Vertex.class)
但可以保留给ThinkerGraph implementation,事实上它说
每个图形系统都有不同的索引和机制 模式已定义。 TinkerPop3不需要任何一致性 这片区域。在TinkerGraph中,唯一的定义是围绕索引。 与其他图形系统,属性值类型,索引,边缘标签, 可能需要先验地定义数据等 曲线图。
有一个例子for Neo4J
TinkerPop3不提供用于定义的方法接口 底层图形系统的模式/索引。因此,为了 创建索引,直接调用Neo4j API非常重要。
但代码非常特定于该插件
graph.cypher("CREATE INDEX ON :person(name)")
请注意,对于BlazeGraph the search uses a built in full-text index