2012-11-27 1 views
5

In Neo4j, se elimino un nodo indicizzato devo rimuovere quel nodo dall'indice prima o l'indice verrà aggiornato automaticamente?Eliminazione nodi indicizzati in Neo4j

Ecco un piccolo (non testata) Esempio:

val index = graphDb.index() 
val someIdx = index.forNodes("someIdx") 
val someNode = graphDb.createNode() 
someIdx.add(someNode, "key", "value") 

E poi:

//remove from someIdx??? 
someNode.delete() 

risposta

9

Quando si elimina un nodo, è necessario rimuovere prima l'indice. Se si desidera rimuovere tutte le menzioni di un nodo dall'indice, vedere di seguito:

IndexManager indexManager = db.index(); 
    Index<Node> index = indexManager.forNodes("indexName"); 
    index.remove(node); 
+0

Cosa succede quando si tenta di ottenere il nodo eliminato tramite una query di indice? – fynn

+0

Si ottiene un'eccezione, non posso citare l'esatto, ma si tratta di un tentativo di accesso a un nodo che non esiste più. – Nicholas

+0

Thx per aiuto ... – fynn