В Neo4J я продолжаю получать Neo.DatabaseError.General.UnknownError, когда я пытаюсь объединить - PullRequest
0 голосов
/ 13 июня 2018

Я использую данные мнения.csv из базы данных FossilWorks для Synapsids.Это общедоступные данные. мнения являются связями между различными таксонами и опубликованными работами, в которых изложено мнение. мнений выражают такие отношения, как "Это научное мнение Ф. Амегино, опубликованное в" "Вклад Премьера в духе маммологии", "Пиротериум " от 1889 г., что Astrapotherium ephebicum является видом рода Parastrapotherium . 'В этом примере Parastrapotherium является «родительским таксоном», а Astrapotherium ephebicum является «детским таксоном». Существуют другие формы мнений, которые не имеют «родительского таксона», поэтомуэто значение не является обязательным. В файле используется набор символов iso-8859-1, поэтому сначала он был преобразован с использованием

iconv -f iso-8859-1 -t utf-8 reference.csv> Reference.txt.

Используя Neo4j Desktop (версия: 1.1.5), я могу загрузить ссылки и связать их с дочерними таксонами с помощью:

USING PERIODIC COMMIT
load csv with headers from "file:///opinions.txt" as row
FIELDTERMINATOR "|"
with row where row.status = "belongs to"
match (ref:Reference {reference_no:toInteger(row.reference_no)})
match (child:Taxon {taxon_no:toInteger(row.child_no)})
merge (st:Subtaxon {opinion_no:toInteger(row.opinion_no)})
FOREACH(ignoreMe IN CASE WHEN trim(row.pages) = "" then [] else [1] end | SET st.pages = row.pages)
FOREACH(ignoreMe IN CASE WHEN trim(row.comments) = "" then [] else [1] end | SET st.comments = row.comments)
merge (ref)-[:DESCRIBES]->(st)
merge (st)-[:CHILD]->(child);

Однако мне не удалось добавить родительские узлыбез получения довольно непрозрачного «Neo.DatabaseError.General.UnknownError». Это самый простой запрос, который выдаст ошибку:

USING PERIODIC COMMIT
load csv with headers from "file:///opinions.txt" as row
FIELDTERMINATOR "|"
with row where row.status = "belongs to" and row.parent_no is not null
match (parent:Taxon {taxon_no:toInteger(row.parent_no)})
match (st:Subtaxon {opinion_no:toInteger(row.opinion_no)})
merge (st)-[:PARENT]->(parent);

Я использовал csvstat , чтобы убедиться, что parent_no являетсяцелое число. Я не уверен, как эффективно отладить эту ошибку. Любые предложения будут с благодарностью.

1 Ответ

0 голосов
/ 13 июня 2018

Logisima имеет правильную подсказку.Я обновил с 3.4.0 до 3.4.1, и я смог загрузить данные.Так что это похоже на ошибку, которая была решена в 3.4.1

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