Учитывая базовый ориентированный на Blueprints OrientGraph с индексом 'name' (уникальный или notunique), любые предложения о том, как можно улучшить следующее: если нужно?OrientDB GraphDatabase: OSQLSynchQuery для @RID, чтобы получить graph.getVertex (rid) ... самый быстрый способ загрузить вершину из ключа индекса?
Примечание: я не могу найти окончательное руководство по загрузке вершины [чертежей] с использованием индекса. У меня большой граф, и использование имеет ('name', 'bob') (в консоли) занимает 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"));
Еще раз спасибо Lvca. Он работал: «Индекс index = graph.getIndex (« name », Vertex.class); Iterable results = index.get ("name", "bob"); Vertex v1 = results.iterator(). Next(); '... Мне нужно было создать индекс, используя Tinkerpop API (в отличие от непосредственного выполнения SQL):' Index index = graph.createIndex ("account_id", Vertex. класс); ' –
Rob