Я использую TITAN 0.4 и gremlin для обхода. Мое требование состоит в том, чтобы идентифицировать повторяющиеся вершины в графе и объединить их. В графе есть> 15 M вершин.Gremlin: Вершины GroupBy, имеющие счет> 1
gremlin> g.V.has('domain').groupBy{it.domain}{it.id}.cap
==>{google.com=[4], yahoo.com=[16, 24, 20]}
Я могу сгруппировать вершины, но мне нужны только те домены (вершины), которые существуют более одного раза.
В приведенном выше примере мне нужно только вернуть ==>{yahoo.com=[16, 24, 20]}
Ключ «домен» индексируется, если это имеет значение.
Пожалуйста, помогите мне здесь
Это решение хорошо работает в моем Dev среде, но и в производстве, у меня есть 10M + вершины, в которой это не удается запустить метания ниже исключения: -. гремлина> gVhas ('ip_address') groupCount {it.ip_address} .cap.next(). findAll {it.value> 1} WARN com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx - Запрос требует итерации по всем вершинам [(ip_address <> null)]. Для повышения производительности используйте индексы –
, что не является исключением - просто предупреждение о том, что вы повторяете все вершины. я подозреваю, что ваше исключение - это «OutOfMemoryException», возможно? в любом случае, это характер вашего запроса - он должен перебирать все вершины, чтобы найти свойство «domain» для 'groupCount' на них. если вам нужно это сделать, и ваш график будет большим, тогда (1) бросьте больше памяти на проблему или (2) используйте titan-hadoop или (3) каким-то образом перестройте свой график, чтобы разрешить использование индекса. –
Да, я получаю исключение outofmemory сбой в группировке из-за TemporaryStorageException gremlin> gVhas ('domain'). GroupCount {it.domain} .cap.next(). FindAll {it.value> 1} WARN com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx - Запрос требует итерации по всем вершинам [(domain <> null)]. Для лучшей производительности используйте индексы Вызвано: com.thinkaurelius.titan.diskstorage.TemporaryStorageException: временный сбой в хранилище данных Также я использую стандарт TITAN Index в ключевом «домене» g.makeKey («domain»). DataType (String.class). Indexed ("standard", Vertex.class) .make(); –