您如何利用限于顶点标签的复合索引?
问题描述:
假设我已经定义,像这样一个综合指数和顶点标签:您如何利用限于顶点标签的复合索引?
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')
,这是更高性能?
g.V('label','god').has('name','zeus')
g.V('name','zeus').has('label','god')
传统上,我们会去与(2)因为名比标签更高度的选择性,但有什么特别的顶点的标签,使得这个不真实?
答
它在TP2中不起作用,但会与TP3(Titan 0.9 /下一版本)一起使用。目前,你可以这样做:
g.query().has('label','god').has('name','zeus').vertices()
有关的性能配置还是不知道。
答
好吧,你已经发现了,它目前在小鬼不可能的,只能通过查询API。关于表现:您的两种方法不会有所作为;在引擎盖下,两个查询都会生成相同的Cassandra/HBase查询(或者您使用的任何后端存储)。
干杯, 丹尼尔
丹尼尔嗨,你能确认你的意思是,小鬼查询未编入索引? – 2014-11-10 00:12:55
确认。 Gremlin2不使用索引,Gremlin3将使用它。解决此限制的唯一方法是使用查询API。 – 2014-11-10 12:45:35