apache / incubator-hugegraph

A graph database that supports more than 100+ billion data, high performance and scalability (Include OLTP Engine & REST-API & Backends)
https://hugegraph.apache.org
Apache License 2.0
2.63k stars 517 forks source link

定义唯一索引可以重复插入,并且查询多条同样结果 #829

Closed CPJ-data closed 4 years ago

CPJ-data commented 4 years ago

测试了唯一索引,在schema中对于某个ID,如uid设置唯一索引,但是在插入数据的时候可以重复进行插入 ——>如该数据 Vertex marko = graph.addVertex(T.label, "person", "name", "杨过", "eid", "1702","age", 28, "city", "唐宋元明清","uid","1702"); 第一次插入图后,再次插入同一条数据也是可以插入成功并不会报错唯一索引的错误,而且界面上的显示也是多条一样的数据(插入多少次就显示多少条数据)。 定义了唯一索引的字段,通过唯一索引的字段可以进行点的查询,重复数据不会报唯一索引错误。 定义唯一索引: schema.indexLabel("personByUid") .onV("person") .by("uid") .unique() .secondary() .ifNotExist() .create();

javeme commented 4 years ago

@CPJ-data 创建语句有误,请去掉.secondary()

schema.indexLabel("personByUid")
.onV("person")
.by("uid")
.unique()
.ifNotExist()
.create();
CPJ-data commented 4 years ago

@javeme 去掉可以保证不重复插入,但是定义unique的字段,在web界面使用g.V().has("uid","1702")无法进行查询,请问这个该怎么定义语法。之前有提过这么一个问题,回复已经解决。如果解决了,在代码中该怎么定义,才可以在web界面上通过定义unique的字段查询结果,还有就是解决的问题是改了源代码升级了jar包,我这边该怎么操作才能避免该问题。感谢

javeme commented 4 years ago

@CPJ-data 目前unique index不支持查询的,只能限制唯一约束,如果需要查询请再建立一个secondary index索引。 @zhoney 看看实现上能不能有办法支持一下查询?

javeme commented 4 years ago

类似问题 #832