Я использую версию neo4j 2.0-M5 сообщества Neo4j.Почему запросы cypher или может быть neo4j дает низкую производительность?
Я создал узлы с использованием драйвера JDBC от here, к сожалению, я не занимался автоматической индексацией, но создал наклейки. У меня 50 миллионов узлов, 160 миллионов свойств и 10 отношений. Я выполнить этот запрос с помощью Java API Neo4j внедренного
MATCH(names:DAR)
with names limit 200000
where names.name <> null
and (names.name =~ ".* (?i)SHAIK$" or names.name =~ "(?i)SHAIK .*$"
or names.name =~ ".* (?i)SHAIK .*$" or names.name =~ "(?i)SHAIK")
AND NOT(names.name =~ '.(?i)shekar.$')
AND NOT(names.name =~ '.(?i)shekhar.$')
AND NOT(names.name =~ '.(?i)sheker.$')
return names as names1
Это займет 40 сек в шифровальщике консоли, 2 минут в Neo4j Java встроенного API.
ОК, хорошо, позже я обрабатывать их, используя следующий код
Iterator<Node> resultNode1 = result.columnAs("names1");
while (resultNode1.hasNext()) {
System.out.println("after ddd"+Calendar.getInstance().getTime());
}
Для первой записи он занимает несколько секунд, но для последней записи он занимает 5 минут.
Я пробовал с различными входами, такими как SHAeK и sheek. Если в итераторе записано 100 записей, для первых 99 записей требуется 5 секунд и 5 минут для 100-й записи.
Я не могу увеличить производительность, пожалуйста, помогите мне?
Просто чтобы быть ясно: 5 крор = 50 млн евро Итак, у вас есть 50 миллионов узлов, и вы выполняете до 7 проверок регулярных выражений против 200 000 узлов за раз? Просто догадаться, так как я не пробовал это, но я думаю, что это требует огромного количества CPU ... –
Есть ли альтернатива этому? – AnilHoney
, но мы применяем только 200000 узлов, – AnilHoney