Indexing 索引和定向数据库

Indexing 索引和定向数据库,indexing,orientdb,Indexing,Orientdb,我在orientdb中创建了一个索引,其中包含图形的所有边。要进行查询,请执行以下操作: select from index: Where unique_edge key = # 9: 1 因此,在web控制台中,我得到 OCompositeKey {keys = [# 9: 1, # 9: 0]} OCompositeKey {keys = [# 9: 1, # 12: 0]} java控制台中的同一查询 # 3: -1 # 3: -1 我需要得到边的顶点 # 9: 1, # 9: 0,

我在orientdb中创建了一个索引,其中包含图形的所有边。要进行查询,请执行以下操作:

select from index: Where unique_edge key = # 9: 1
因此,在web控制台中,我得到

OCompositeKey {keys = [# 9: 1, # 9: 0]}
OCompositeKey {keys = [# 9: 1, # 12: 0]}
java控制台中的同一查询

# 3: -1
# 3: -1
我需要得到边的顶点

# 9: 1, # 9: 0, # 12: 0.
有人能帮我吗?

创建de索引

OCommandSQL declareIn= new OCommandSQL();
declareIn.setText("CREATE PROPERTY E.in LINK");
OCommandSQL declareOut= new OCommandSQL();
declareOut.setText("CREATE PROPERTY E.out LINK");
OCommandSQL createIndexUniqueEdge= new OCommandSQL();
createIndexUniqueEdge.setText("CREATE INDEX unique_edge ON E (in, out) UNIQUE");
orientDBGraph.command(declareIn).execute();
orientDBGraph.command(declareOut).execute();               
orientDBGraph.command(createIndexUniqueEdge).execute();

System.out.println(createIndexUniqueEdge.getText());

String query10 = "select from index:unique_edge where key=#9:1";
Iterable<OrientVertex> res10 = orientDBGraph.command(new OCommandSQL(query10)).execute();

while(res10.iterator().hasNext()){
    OrientVertex source = res10.iterator().next();

    System.out.println(source.getId());


}
你可以用

select both() from #9:1
因为你的索引不会提高速度


希望有帮助。

您使用的是哪个版本?您好,可以发布您的模式吗?Thx提前你不应该创建进出属性,因为E类上已经有了。谢谢,但是我做了,没有创建进出属性,我出现了这个错误。。。。。。。。。。。。无法在类“E”上创建名为“unique_edge”的索引,因为类定义中缺少字段“in”……谢谢,以及如何分别获取两个顶点,即在两个查询中从9:1选择in,从9:1选择out