My question is most certainly a duplicate of Neo4j Spatial - How To Delete A Node, but it has not yet been solved.
To my understanding removing a node from a spatial ind
Yes. You are correct. As this link says,this is a known issue and its still open since very long.
Now, coming to your question, you can do it manually by following the below steps.
"id"
property of the indexed node, which you want to delete.Whenever any node is added to index (let's say 'geom'), then a UNIQUE RTREE_REFERENCE
is added with that node. NEO4J
assigns a unique id to that reference. This assigned "id" is different than the "id" which was used to index the node.e.g. Let's consider that "User" node with id:7577
is added to index "geom", using localhost:7474/db/data/node/7577
.
Now, after this index is created, you can check it's RTREE_REFERENCE
, with the following command in Neo4j Browser.MATCH (a)-[:RTREE_REFERENCE]->(b) where b.id=7577 return b;
We need to get the "internal" id of the node "b", we can do this by firing below command in the Neo4j Browser. MATCH (a)-[:RTREE_REFERENCE]->(b) where b.id=7577 return id(b);
MATCH (a)-[:RTREE_REFERENCE]->(b) where b.id=7577 return id(b);
you will get "no rows". as the RTREE_REFERENCE
has been deleted.Note : All of the above steps can be automated from your code too, using any HttpClient from Java/.Net/PHP.
Hope this answers both of your questions
Thanks