Closed CPJ-data closed 4 years ago
@CPJ-data 目前unique index只是一种约束索引,并不支持查询。如果要查询可以根据数据类型建立其他索引。
即使目前不支持unique index的查询,但返回的信息并非预期的,我们会尽快修复,谢谢反馈!
@zhoney 定义schema: schema.indexLabel("personByEid") .onV("person") .by("eid") .secondary() .unique() .ifNotExist( .create(); 查询语句:g.V().has("eid","1702")
@zhoney @Linary 测试了唯一索引,在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();
@CPJ-data
schema.indexLabel("personByUid")
.onV("person")
.by("uid")
.unique()
.secondary()
.ifNotExist()
.create();
建立的是二级索引(secondary index),而不是唯一索引(unique index)。二级索引是支持查询的,唯一索引仅能够限制值不重复,不能用于查询。
第一次插入图后,再次插入同一条数据也是可以插入成功并不会报错唯一索引的错误,而且界面上的显示也是多条一样的数据(插入多少次就显示多少条数据)。
定义了唯一索引的字段,通过唯一索引的字段可以进行点的查询,重复数据不会报唯一索引错误。
这是因为创建了二级索引,且顶点使用的是自动id的策略,所以每增加一条,就多一个顶点,虽然属性都一样,但是id却不同,因此是不同的顶点。
Expected behavior 期望表现
使用g.V().has("id","1223") 可查出该点信息。
Actual behavior 实际表现
g.V().has("eid","1702") Error! Unknown index type 'UNIQUE' 使用g.V().hasLabel("person").has("eid","1702") Error! Unknown index type 'UNIQUE'
Steps to reproduce the problem 复现步骤
Status of loaded data 数据状态
Vertex/Edge summary 数据量
Vertex/Edge example 数据示例
{type something here...}
Schema(VertexLabel, EdgeLabel, IndexLabel) 元数据结构
{type something here...}
Specifications of environment 环境信息