2012-06-10 24 views
0

給定一個與索引'名稱'(唯一或不唯一)的基本藍圖兼容的OrientGraph,如果需要可以改進以下內容的任何建議?OrientDB GraphDatabase:用於@RID的OSQLSynchQuery以獲取graph.getVertex(rid)...從索引鍵加載頂點的最快方法?

注意:我找不到使用索引加載[blueprints]頂點的權威指南。我有一個大圖,使用('名字','鮑勃')(在控制檯)需要2分鐘!另一方面,基於索引的搜索以毫秒爲單位返回。

我想出迄今最好的:

OrientGraph graph = new OrientGraph("local:/graph1/databases/test", "admin", "admin"); 
List<ODocument> resultlist = graph.getRawGraph().query(new OSQLSynchQuery<ODocument>("SELECT FROM INDEX:name WHERE KEY = 'bob'")); 
ODocument resultodoc = resultlist.get(0).field("rid"); 
String rid = resultodoc.getIdentity().toString(); // would return something like #6:1500000 
Vertex v1 = graph.getVertex(rid); 
System.out.println(v1.getProperty("name")); 

回答

0
+0

再次感謝Lvca。它的工作原理:索引 index = graph.getIndex(「name」,Vertex.class); Iterable results = index.get(「name」,「bob」); Vertex v1 = results.iterator()。next();'...我需要使用Tinkerpop API創建索引(與直接執行SQL相反):索引 index = graph.createIndex(「account_id」,Vertex。類);' – Rob

相關問題