在janusgraph中重新索引关系索引时java索引损坏

d5vmydt9  于 2021-06-07  发布在  Hbase
关注(0)|答案(0)|浏览(232)

我注意到,在用“in”方向重新索引关系索引之后,索引中出现了一个损坏。
问题:重新建立索引后,将向每个顶点添加自链接。
为了演示这一点,我使用了一个非常小的图,它由两个顶点(a和b)和一条连接这两个顶点的边组成。
假设边标签为“link”,边有一个属性键(整数)“assockind”

//Creating the Vertex Centrix Index
gremlin > edgeLabel = mgmt.getEdgeLabel("link");
gremlin > assocKind= mgmt.getPropertyKey("assocKind")
gremlin > mgmt.buildEdgeIndex(edgeLabel, "myVertexCentricIndex", Direction.IN, assocKind);

请注意,我已经给出了索引的方向。

//Creating the Edge from A to B: (a and b are vertices)
a.addEdge("link",b,"assocKind",1)

Output Before Reindexing :
gremlin> g.V().has('name' , 'A').inE().hasLabel('link').has('assocKind',1)
//no IN edges to vertex A**Correct**

gremlin> g.V().has('name' , 'A').outE().hasLabel('link').has('assocKind',1)
==>e[4e1f-b6g-1bit-1pqw][14488-link->80024] **Correct**

现在我运行reindex命令

// 'index' is the vertex centric index which is created above
gremlin> m.updateIndex(index, SchemaAction.REINDEX).get()

重新编制索引后的输出:

gremlin> g.V().has('_objId','A').inE().hasLabel('link').has('assocKind',1)
==>e[4e1f-b6g-1bit-b6g][14488-link->14488]**self link got created**

gremlin> g.V().has('_objId','A').bothE().hasLabel('link').has('assocKind',1)
==>e[4e1f-b6g-1bit-1pqw][14488-link->80024]
==>e[4e1f-b6g-1bit-b6g][14488-link->14488]**Unexpected self Link**

我已经在janusgraph 0.2.0、0.2.3和最新的janusgraph 0.5.2中进行了测试。存储后端是hbase
这是janusgraph本身的一个bug吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题