Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Installazione e primi passi

Installare Neo4j su Windows e Linux, e utilizzarlo per creare, modificare e cancellare nodi e relazioni di questo database NoSQL a grafo.
Installare Neo4j su Windows e Linux, e utilizzarlo per creare, modificare e cancellare nodi e relazioni di questo database NoSQL a grafo.
Link copiato negli appunti

L’installazione di Neo4j è rapida e richiede poco spazio su disco rispetto ad altri database.

Per prima cosa bisogna scaricare Neo4j dal sito ufficiale, selezionando il pacchetto adatto al sistema operativo su cui operiamo: Windows o Linux.

Installazione su Windows

Per Windows, la procedura è molto semplice: basta lanciare l’eseguibile, accettare la licenza e scegliere il percorso di installazione:

Figura 1. Installazione su Windows (click per ingrandire)

Installazione su Windows

A questo punto si può lanciare Neo4j, che mostrerà questa finestra:

Figura 2. Avvio del server (click per ingrandire)

Avvio del server

Non dobbiamo far altro che scegliere il percorso in cui si troveranno i file del database e premere Start. Dopo qualche secondo apparirà un link da aprire nel browser per accedere alla console web, generalmente http://localhost:7474/.

Installazione su Linux

Se lavoriamo su Linux, prima cosa bisogna scompattare il pacchetto destinato a questo sistema operativo nel percorso dove si vuole installare Neo4j:

tar -xf neo4j-community-versione-unix.tar.gz

L’eseguibile si trova nella sottocartella bin:

bin/neo4j start

A questo punto il server è in ascolto, pronto per l'uso.

Primi passi

Aprendo il browser sulla URL http://localhost:7474/, ci verrà mostrato il Neo4j Browser:

Figura 3. Neo4j Browser (click per ingrandire)

Neo4j Browser

Si tratta di un'interfaccia web che permette di interagire con il
server inviando comandi o query Cypher, il linguaggio creato appositamente
per Neo4j a cui abbiamo accennato in precedenza.

Per prima cosa possiamo creare un nodo. Nel prompt (la casella che appare
in alto nel Neo4j Browser), inseriamo:

CREATE (:Utente { username: 'htmluser@html.it', password: 'A4_2j4=' })

In questo caso il nodo contiene due proprietà. Se il server risponde con un
messaggio simile al seguente, significa che la transazione è stata eseguita
con successo:

Added 1 label, created 1 node, set 2 properties, statement executed in 64 ms.

L’istruzione CREATE che abbiamo appena visto permette di creare non solo i nodi, ma anche le relazioni. Vediamo un esempio:

CREATE (:Utente { username: 'verdi@html.it'})-[:ISCRITTO_A{scadenza: '2016-10-08'}]->(:Corso {nome: 'Corso di Neo4j'})

Questa istruzione crea 2 nodi e una relazione. Il primo nodo con etichetta Utente, il secondo con etichetta Corso. La relazione di tipo ISCRITTO_A viene creata dal primo al secondo nodo (è necessario indicare un verso alla relazione).

Ora possiamo interrogare il database, per richiedere gli utenti iscritti al corso con scadenza in un certo anno:

MATCH (u)-[i:ISCRITTO_A]->(:Corso {nome: 'Corso di Neo4j'}) WHERE i.scadenza < '2017' RETURN u,i

In questo esempio l’istruzione MATCH, che
vedremo dettagliatamente in seguito, permette di effettuare query
utilizzando il pattern matching. In questo caso si cerca
un pattern formato da qualsiasi nodo u collegato tramite una
relazione i di tipo ISCRITTO_A ad un nodo avente
un’etichetta Corso e la proprietà nome impostata al valore
indicato. Inoltre, tramite la clausola WHERE viene
specificato un ulteriore filtraggio. La clausola
RETURN specifica cosa restituire
dall’interrogazione.

La risposta sarà l’elenco di nodi che corrispondono alla ricerca. Se
passiamo alla visualizzazione grafica, tramite l’apposito pulsante Graph, il browser mostrerà quanto segue:

Figura 4. Visualizzazione grafica del risultato di una query (click per ingrandire)

Visualizzazione grafica del risultato di una query

L’istruzione MATCH si può combinare con l’istruzione CREATE (e alle altre istruzioni che vedremo in seguito) per effettuare modifiche a porzioni di grafo:

MATCH (u)-[i:ISCRITTO_A]->(c:Corso {nome: 'Corso di Neo4j'}) WHERE i.scadenza < '2017'
CREATE (u)-[:LEGGE]->(l:Libro { titolo: 'Neo4j Cookbook' })
SET i.inizio = '2016-01-01'

In questo caso abbiamo creato un nodo con etichetta Libro e
abbiamo aggiunto una relazione tra esso e tutti gli utenti trovati con il
pattern matching. Inoltre, con l’istruzione SET,
abbiamo impostato una proprietà con nome inizio nella
relazione i. Se la proprietà non esiste verrà automaticamente creata, altrimenti
sarà sovrascritta.

La cancellazione di un nodo o di una relazione si effettua con l’istruzione
DELETE. In questo caso, stiamo cancellando tutte
le relazioni di tipo LEGGE con il libro creato prima:

MATCH (u)-[i:LEGGE]->(l:Libro { titolo: 'Neo4j Cookbook' })
DELETE i

Cancellare i nodi senza cancellare le sue eventuali relazioni con altri
nodi provoca un errore di tipo ConstraintViolationTransactionFailureException:

MATCH (u:Utente { username: 'verdi@html.it' })
DELETE u

In tal caso bisogna eliminare le relazioni o prima di eliminare il nodo (come abbiamo visto nell’esempio precedente) oppure contestualmente, come vedremo più avanti, con l’istruzione OPTIONAL MATCH.

Ti consigliamo anche