Ниже я добавляю cdate
индекс, а затем некоторые данные:Titan Предупреждение: Запрос требует перебирает все вершины
baseGraph.makeKey("cdate").dataType(Long.class).indexed(Vertex.class).make();
for(int i=0;i<20;i++){
Vertex page = g.addVertex("P0"+i);
page.setProperty("cdate", new Date().getTime());
page.setProperty("pName","pName-P0"+i);
Edge e =g.addEdge(null, user, page, "created");
e.setProperty("time", i);
Thread.sleep(2000);
}
for(int i=20;i<25;i++){
Vertex page = g.addVertex("P0"+i);
page.setProperty("cdate", new Date().getTime());
page.setProperty("pName","pName-P0"+i);
Edge e =g.addEdge(null, user, page, "notcreated");
e.setProperty("time", i);
Thread.sleep(2000);
}
g.commit();
Теперь, когда я запускаю следующий запрос:
Iterable<Vertex> vertices = g.query().interval("cdate",0,time).
orderBy("cdate", Order.DESC).limit(5).vertices();
Это дает выход в правильно но он показывает:
WARN com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx -
Query requires iterating over all vertices [(cdate >= 0 AND cdate < 1392198350796)].
For better performance, use indexes
Но я уже определил cdate
как индекс (см. Верхнюю строку).
Я думаю, вы говорите что-то вроде https://groups.google.com/forum/#!topic/aureliusgraphs/n0AyWioVnoY .defining ключ свойства – manish