2016-06-28 2 views
0

Я болт для Neo4j и у меня есть простой запрос, чтобы найти длину между узлами (запуск и остановка) произвольной длинойNeo4j БОЛТ запрос не всегда работает consitently

stmt = MATCH (n:Month {ID: {start} }),(m:Month {ID: {stop}}),p = shortestPath((n)-[r:nextMonth*..100000]-(m)) RETURN LENGTH(p) 
dict = {'start': '201507', 'stop': '201509'} 
result = list(session.run(stmt, dict))[0][0] 

Когда я использую веб-интерфейс, запрос Cypher возвращает мне результат 2 (что является правильным результатом). Когда я запускаю команду python, большую часть времени результат выводится как [] (т. Е. Нет значения) вместо значения 2. Иногда он работает нормально, а иногда нет. Меня озадачивает то, что он не дает правильного значения все время и что я могу запустить запрос вручную без проблем.

Это всего лишь выдержка из более крупного файла кода. Интересно, существует ли проблема с тем, как сеансы установлены или закрыты? Сеанс, который я использовал, имеет правильный тип: neo4j.v1.session.Session объект в 0x04CCD7F0

Любые идеи, почему это или для устранения неполадок, приветствуются.

ответ

1

Я действительно нашел причину своей проблемы.

Я использовал две сессии:

сессии1 был там, чтобы создать узлы (заявление не было показано выше) сессии2 было найти длину пути (как показано выше)

Добавление наименьшую задержку (время .sleep (0.1) между запросом и созданием пути решить эту проблему.

у меня есть подозрение, что сессии2 уже выполняется в то время как создание узлов еще не было завершено.

0

Попробуйте запустить это:

result = session.run(stmt, dict).peek()[0]

Все время, когда я получаю возвращение «session.run()», я использую метод заглядывать() (если возвращение только одна линия) , В противном случае лучше использовать результат с циклом, потому что это возвращает объект коллекции, который помогает в производительности вашего кода, и если результат огромен и вы конвертируете все это в список, возможно, вы взломаете свою память с этим.

+0

проблема была в другом месте, но заявление о заглядывании действительно полезно –

Смежные вопросы