7d40cf95bf
- FastAPI Identify API (port 8081) - Neo4j propertygraf (64 noder, 80 kanter) - Ingest-pipeline (Python) - Byggscript + integrationstester - Docker Compose setup
37 lines
1004 B
Plaintext
37 lines
1004 B
Plaintext
// Landvex IOL — ladda grafen i Neo4j
|
|
// Kör: cat db/load_graph.cypher | cypher-shell -u neo4j -p landvex2024
|
|
|
|
CREATE CONSTRAINT lvx_id_unique IF NOT EXISTS
|
|
FOR (n:Objekt) REQUIRE n.lvx_id IS UNIQUE;
|
|
|
|
:auto LOAD CSV WITH HEADERS FROM 'file:///noder.csv' AS row
|
|
CALL {
|
|
WITH row
|
|
CREATE (o:Objekt {
|
|
lvx_id: row.lvx_id,
|
|
posttyp: row.posttyp,
|
|
namn_sv: row.namn_sv,
|
|
namn_en: row.namn_en,
|
|
doman: row.doman,
|
|
tier: toInteger(row.tier),
|
|
verifieringsniva: row.verifieringsniva,
|
|
konfidens: toFloat(row.konfidens)
|
|
})
|
|
} IN TRANSACTIONS OF 1000 ROWS;
|
|
|
|
:auto LOAD CSV WITH HEADERS FROM 'file:///kanter.csv' AS row
|
|
CALL {
|
|
WITH row
|
|
MATCH (a:Objekt {lvx_id: row.subjekt})
|
|
MATCH (b:Objekt {lvx_id: row.objekt})
|
|
CREATE (a)-[r:RELATION {
|
|
predikat: row.predikat,
|
|
niva: row.niva,
|
|
beskrivning: row.beskrivning
|
|
}]->(b)
|
|
} IN TRANSACTIONS OF 1000 ROWS;
|
|
|
|
// Index för snabb sökning
|
|
CREATE TEXT INDEX objekt_namn IF NOT EXISTS
|
|
FOR (o:Objekt) ON (o.namn_sv, o.namn_en);
|