Sto cercando di creare un database in Neo4j con una struttura che contenga sette diversi tipi di nodi, in totale circa 4-5000 nodi e tra loro circa 40000 relazioni. Il codice Cypher Attualmente sto usando è che ho prima creare i nodi con il codice:Creazione di nodi e relazioni contemporaneamente in neo4j
Create (node1:type {name:'example1', type:'example2'})
intorno al 4000 di quell'esempio con i nodi unici.
rapporti Poi c'ho dichiarati come tali:
Create
(node1)-[:r]-(node51),
(node2)-[:r]-(node5),
(node3)-[:r]-(node2);
Circa 40000 di tali relazioni uniche.
Con i grafici di scala ridotta questo non ha avuto alcun problema. Ma con questo, la query Esecuzione non interrompe mai il caricamento.
Qualche suggerimento su come posso far funzionare questo tipo di query? O cosa dovrei fare invece?
modifica. Quello che sto cercando di costruire è un grande grafico su un prodotto, con le sue versioni, versioni di rilascio, caratteristiche ecc. Nello stesso modo in cui è costruito l'esempio del grafico del film.
Il prodotto ha circa 6 rilasci in totale, ogni versione ha circa 20 releaseversion. In totale ci sono 371 caratteristiche e di lì 371 caratteristiche ci sono anche 438 featureversions. la mai più releaseversion (120 in totale) ha quindi circa 2-300 featureversions ciascuno. Questi featureversion sono mappati alla sua feature che ha dipendenze verso un po 'di tutto nel db. Ho anche involed dipendenze HW come la possibile hw per eseguire queste caratteristiche su, uscite su ecc im modo basicaly utilizzando il codice cifrato come ad esempio:
Create (Product1:Product {name:'ABC', type:'Product'})
Create (Release1:Release {name:'12A', type:'Release'})
Create (Release2:Release {name:'13A, type:'release'})
Create (ReleaseVersion1:ReleaseVersion {name:'12.0.1, type:'ReleaseVersion'})
Create (ReleaseVersion2:ReleaseVersion {name:'12.0.2, type:'ReleaseVersion'})
e inferiori a quelli li ho strutturato utilizzando
Create (Product1)<-[:Is_Version_Of]-(Release1),
(Product1)<-[:Is_Version_Of]-(Release2),
(Release2)<-[:Is_Version_Of]-(ReleaseVersion21),
per tutto il tragitto verso il basso per le caratteristiche, e poi ho aggiunto anche le dipendenze tra loro, quali:
(Feature1)-[:Requires]->(Feature239),
(Feature239)-[:Requires]->(Feature51);
dal momento che ho dovuto trovare tutte queste informazioni da molte diverse excel schede tecniche e tc, ho creato il codice in questo modo pensando di poterlo mettere insieme in una query di massa cifrata ed eseguirlo sul browser/sul localhost. ha funzionato davvero bene fino a quando non ho usato più di 4-5000 query alla volta. Quindi ha creato l'intero database in circa 5-10 secondi al massimo, ma ora quando cerco di eseguire circa 45000 query allo stesso tempo è in esecuzione da quasi 24 ore, e si sta ancora caricando e dicendo "query in esecuzione". .. ". Mi chiedo se c'è comunque che posso migliorare il tempo necessario, il database sarà eventualmente creato? o posso fare alcuni indici più intelligenti o altre cose per migliorare le prestazioni? perché dal modo in cui è scritto il mio cifrario ora non posso dividerlo in pezzi poiché tutto nel database ha una sorta di connessione al prodotto. Devo riscrivere il codice o c'è un modo uniforme?
Grazie! Questo dovrebbe essere accettato come risposta – troig
Non abbiamo bisogno di parentesi qui? (a) - [: BLAH] -> (b) – orestiss
Sì. La risposta è stata scritta nel 2014 quando non ne hai avuto bisogno. – FrobberOfBits