Installazione e primi passi

22 settembre 2017

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.

Tutte le lezioni

1 2 3 ... 13

Se vuoi aggiornamenti su Installazione e primi passi inserisci la tua e-mail nel box qui sotto:
Tags: ,
 
X
Se vuoi aggiornamenti su Installazione e primi passi

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy