Я использую граф Януса, развернутый во встроенном режиме. И я использую java. И запускает следующие запросы
-> gV (). Has ('удалено', false) .valueMap () // медленно
-> gV (). Has ('удалено') , false) .toList () // медленно
вышеупомянутый запрос также требует времени после реализации составных индексов
-> gV (). has ('удалено', false) // быстро
Приведенный выше запрос выполняется быстро и использует встроенный составной индекс, созданный для удаленного ключа.
Также пытался сделать то же самое, используя java код
List<Vertex> list = new ArrayList<>();
DateTime dt1 = new DateTime();
JanusGraphQuery<? extends JanusGraphQuery> query = GraphClient.getJGraph().query();
Iterator iterator = query.has("deleted",false).vertices().iterator();
while(iterator.hasNext()) {
Vertex next = (Vertex) iterator.next();
getPropertyMapByVertex(next); //time consuming to convert vertex into Map.
list.add(next);
}
public static Map<String, Object> getPropertyMapByVertex(Vertex vertex) {
Map<String, Object> propertyMap = new HashMap<>();
try {
if (vertex != null) {
Iterator<VertexProperty<Object>> properties = vertex.properties();
if (properties != null) {
while (properties.hasNext()) {
Property<Object> property = properties.next();
propertyMap.put(property.key(), property.value());
}
propertyMap.put(GraphConstants.VERTEX_ID, vertex.id());
}
}
} catch (Exception e) {
logger.error("Exception in getPropertyMapByVertex : {}", ExceptionUtils.getStackTrace(e));
}
return propertyMap;
}
у нас есть какой-нибудь способ быстрого метода "getPropertyMapByVertex" или любой другой способ запустить запрос и быстро получить данные, используя java.