Sto utilizzando Titan Server (Cassandra) v 0.3.1. Mi piacerebbe creare un indice su una chiave/proprietà di vertice che ho già iniziato a utilizzare. Tuttavia, nella loro documentation, Titan spiega che:Creare un indice su una proprietà vertice che esiste già in Titan (Cassandra)?
To index vertices by key, the respective key index must be created before the key is first used in a vertex property.
Se cerco di creare un indice su un campo che esiste già, vedo un errore come previsto:
gremlin> g.createKeyIndex("my_key",Vertex.class)
Cannot add an index to an already existing property key: my_key
Tuttavia, anche se io cercare di cancellare il grafico, eliminando tutti i vertici & bordi, vedo lo stesso errore:
gremlin> g.E.remove()
==>null
gremlin> g.V.remove()
==>null
gremlin> g.createKeyIndex("my_key",Vertex.class)
Cannot add an index to an already existing property key: my_key
Così sembra che my_key
persiste in t l'archivio dati sottostante anche dopo che tutti gli elementi del grafico sono stati rimossi. Questo è coerente con i documenti (anche se gli elementi sono stati cancellati, la proprietà è già stata "utilizzata per la prima volta"), ma sembra valsa la pena provare.
Il mio prossimo passo sarà ricreare completamente un nuovo archivio dati Cassandra, ma mi chiedo se c'è un'opzione migliore.
Qual è il modo più semplice per creare un indice su un campo che è già stato utilizzato in Titan?
Grazie per la risposta-- sfortunatamente, non sembra farlo a tal fine. Penso che g.V.each {g.removeVertex (it)} 'sia approssimativamente equivalente a' g.V.remove() '([vedi related] (http://stackoverflow.com/a/17250723/2172530)). Quando ho provato il tuo metodo alternativo per rimuovere i vertici, Titan ha avuto lo stesso reclamo: "Impossibile aggiungere un indice a una chiave di proprietà già esistente: my_key'. – bcm360
Hai effettuato il commit della transazione dopo la rimozione? – Pradatta
Ho fatto, nessuna differenza: 'gremlin> g.V.each {g.removeVertex (it)}; g.commit(); g.createKeyIndex ("my_key", Vertex.class); Impossibile aggiungere un indice a una chiave di proprietà già esistente: my_key' – bcm360