У меня есть набор узлов, созданных с использованием file_A, который содержит столбец с «идентификатором» каждого узла. Она была создана с помощью этого Cypher запроса (в Java):Neo4j Cypher - добавление свойства с LOAD CSV
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM 'file:file_A' AS line FIELDTERMINATOR '\t'
CREATE (c:Node {nodeId:line.id})
Теперь у меня есть еще один файл (file_B), который содержит четыре столбца: идентификатор, описание, prop2 и prop3. Мне нужно назначить описание (свойство 'nodeDesc') каждому из узлов, созданных ранее. Эти описания будут прочитаны из столбца «описание» file_B. Более того, чтобы присвоить это значение свойству «nodoDesc» узла, «prop2» и «prop3» должны быть равны «1». Для этого я использую этот запрос: Cypher
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM 'file:file_B' AS line FIELDTERMINATOR '\t'
MATCH (c:Node)
WHERE c.nodeId=line.id AND line.prop2='1' AND line.prop3='1'
SET c.nodeDesc = line.description
file_B содержит некоторые описания для каждого узла, но только один из них имеет как «prop2» и «prop3» равным «1». И это тот, который я хочу присвоить свойству узла.
Проблема, которую я получаю после выполнения предыдущего запроса, заключается в том, что некоторые узлы не имеют описания. После выполнения нескольких тестов я подтвердил, что он не выполняет MATCH «nodeId» с идентификатором столбца file_B, но в этом столбце это «nodeId», и оба «prop2» и «prop2», prop3 'равны 1'.
. Примечание: file_A имеет 400.000 строк приблиз и file_B имеет 1.300.000 строк приблиз.
Спасибо.
Здравствуйте, благодарю вас за ответ. Значения - это строка. И нет конечных или предшествующих пробелов. На самом деле, если я вручную удалю все строки файла_B, кроме одного из тех, которые не сопоставлены, тогда он сопоставляется, если я выполняю запрос cypher (второй). – Vicente
Он также совпадает, если я вырезал одну из строк, которые не совпадают и вставлены в первую позицию строк в файле_B. Странное поведение ... – Vicente