Большой CSV-файл (около 7 ГБ), который является моим результатом некоторых попарных вычислений между строками объектов 1 и объектов 2 с использованием 3 различных методов, выглядит следующим образом:
obj 1 , obj 2 , method1 , method2 , method3
obj1
& obj2
- строки, а method1, method2, method3 - значения с плавающей запятой.
Я не хочу импортировать весь CSV-файл в Neo4j, но когда значения method1 превышают определенный порог, я хочу, чтобы эта конкретная строка была импортирована, а между object1 и object2 этой строки был определен край, и то же самое для method2 и method3, я имею в виду, что когда значения method2 превышают определенный порог, я хочу, чтобы эта конкретная строка импортировалась, а между object1 и object2 этой строки определялось ребро. спасибо @cybersam и @Dave Bennett, которые написали мне здесь оригинальные запросы, я немного их изменил и отдельно выполнил 3 следующих запроса. После этого, когда я напишу, например, простой запрос вроде:
match (n)-[r:similar_on_method2]-(m) return n,r,m
Я получаю не только требуемое отношение, но и другие отношения, включенные в граф результатов, я не знаю, что не так?!
Using periodic commit
LOAD CSV WITH HEADERS
FROM 'file:///objects.csv'
AS line
WITH line
WHERE toFloat(line.method1) >= $x
MERGE (obj1:Object {name: line.obj1})
MERGE (obj2:Object {name: line.obj2})
MERGE (obj1)-[:similar_on_method1]->(obj2)
Using periodic commit
LOAD CSV WITH HEADERS
FROM 'file:///objects.csv'
AS line
WITH line
WHERE toFloat(line.method2) >= $x
MERGE (obj1:Object {name: line.obj1})
MERGE (obj2:Object {name: line.obj2})
MERGE (obj1)-[:similar_on_method2]->(obj2)
Using periodic commit
LOAD CSV WITH HEADERS
FROM 'file:///objects.csv'
AS line
WITH line
WHERE toFloat(line.method3) >= $x
MERGE (obj1:Object {name: line.obj1})
MERGE (obj2:Object {name: line.obj2})
MERGE (obj1)-[:similar_on_method3]->(obj2)