您如何利用限于顶点标签的复合索引?

问题描述:

假设我已经定义,像这样一个综合指数和顶点标签:您如何利用限于顶点标签的复合索引?

mgmt = g.getManagementSystem() 
name = mgmt.makePropertyKey('name').dataType(String.class).make() 
god = mgmt.getVertexLabel('god') 
mgmt.buildIndex('byName',Vertex.class).addKey(name).indexOnly(god).buildCompositeIndex() 
mgmt.commit() 

我如何利用这个指数小鬼的优势在哪里?

假设它是类似g.V('label','god').has('name','zeus'),这是更高性能?

  1. g.V('label','god').has('name','zeus')
  2. g.V('name','zeus').has('label','god')

传统上,我们会去与(2)因为标签更高度的选择性,但有什么特别的顶点的标签,使得这个不真实?

它在TP2中不起作用,但会与TP3(Titan 0.9 /下一版本)一起使用。目前,你可以这样做:

g.query().has('label','god').has('name','zeus').vertices()

有关的性能配置还是不知道。

https://github.com/thinkaurelius/titan/issues/755

好吧,你已经发现了,它目前在小鬼不可能的,只能通过查询API。关于表现:您的两种方法不会有所作为;在引擎盖下,两个查询都会生成相同的Cassandra/HBase查询(或者您使用的任何后端存储)。

干杯, 丹尼尔

+0

丹尼尔嗨,你能确认你的意思是,小鬼查询未编入索引? – 2014-11-10 00:12:55

+0

确认。 Gremlin2不使用索引,Gremlin3将使用它。解决此限制的唯一方法是使用查询API。 – 2014-11-10 12:45:35