Neo4j Count Отдельные узлы, возвращающие больше узлов, чем Total - PullRequest
1 голос
/ 16 мая 2019

Я пытаюсь подсчитать все узлы на моем графике, где не существует определенного отношения.

В моем графике 1816 узлов.

Когда я запускаю следующий запрос:

MATCH (n1)-[r]->(n2)
WHERE NOT (n1)-[:wikipedia]->(n2)
RETURN count(distinct n1)

Или:

MATCH (n)-[r]->()
WHERE NOT type(r)='wikipedia'
RETURN count(distinct n)

Я получаю: 2202

Выше даже числа узлов!

Что не так?

Neo4j версия 3.5.1

1 Ответ

1 голос
/ 17 мая 2019

Тот факт, что вы обнаружили несоответствия с проверкой согласованности, означает, что ваша база данных Neo4j повреждена. Первое, что вы должны сделать, это перевести его в автономный режим и сделать резервную копию , прежде чем пытаться восстановить или восстановить его.

Как только у вас есть резервная копия, вы можете попробовать удалить файлы "neostore.counts.db. *", Чтобы заставить Neo4j перестроить их, но я бы не рекомендовал это делать, поскольку по определению Neo4j находится в недопустимом состоянии, это невозможно узнать, сколько реального ущерба существует (поврежденные узлы, а какие нет). Я бы порекомендовал либо восстановить из более старой резервной копии (если она у вас есть), либо использовать инструмент восстановления, такой как store-utils , чтобы перестроить всю базу данных, выбрасывая любые недопустимые узлы / отношения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...