Sto definendo la relazione tra due entità, Gene e Cromosoma, in quello che penso sia il modo più semplice e normale, dopo aver importato i dati da CSV:Perché neo4j avverte: "Questa query crea un prodotto cartesiano tra i modelli disconnessi"?
MATCH (g:Gene),(c:Chromosome)
WHERE g.chromosomeID = c.chromosomeID
CREATE (g)-[:PART_OF]->(c);
Eppure, quando lo faccio, Neo4j (interfaccia utente del browser):
Questa query crea un prodotto cartesiano tra modelli disconnessi. Se una parte di una query contiene più schemi disconnessi, verrà creato un prodotto cartesiano tra tutte quelle parti. Ciò può produrre una grande quantità di dati e rallentare l'elaborazione della query. Anche se occasionalmente previsto, può essere spesso possibile riformulare la query che evita l'uso di questo prodotto incrociato, magari aggiungendo una relazione tra le diverse parti o utilizzando OPTIONAL MATCH (l'identificatore è: (c)).
Non vedo quale sia il problema. chromosomeID è una chiave estranea molto semplice.
Puoi dare un esempio di una partita particolare e dei loro ID? Sto cercando di visualizzare le relazioni che stai creando. – jgloves
Inoltre, hai altri tipi di relazioni oltre a [: PART_OF]? – jgloves
Questo è solo un avvertimento, e nel tuo caso non c'è niente da fare (a causa della mancanza di relazione tra questi nodi, ed è esattamente quello che crei in questa query!). Gli avvisi nel browser neo4j sono stati aggiunti in 2.3, per informare l'utente quando probabilmente esegue una query errata (ad esempio con prestazioni non buone). – logisima