1

参考这两个stackoverflow问题:

  1. 在 Neo4j 1.9 中删除旧节点和与 Cypher 的关系
  2. 在 Neo4j 中删除索引节点

我有一个图表,其中许多节点在索引中不正确。我认为这是因为使用 Cypher 或使用DeleteWebadmin 控制台上的按钮删除了节点,而没有意识到这也不会从它所在的任何索引中删除节点。

结果是,对于使用这些索引作为起始节点的查询,这些节点现在被错误地返回。

是否可以使用 Cypher、REST API 或 Webadmin 控制台从索引中删除节点?

或者我将不得不编写一些自定义 Java(我正在使用嵌入式模式),它执行以下操作:

Iterable<Node> offendingNodes;
Iterable<Index<Node>> allIndexes;
for(Node offendingNode : offendingNodes) {
    for(Index<Node> index : allIndexes) {
        index.remove(offendingNode);
    }
}
// Now re-index offendingNodes correctly
4

1 回答 1

4

您可以使用 REST 从索引中删除节点,如下所示:

删除 http://[address]:[port]db/data/index/node/[indexname]/[nodeid]

REST API - 索引

于 2013-08-29T09:57:18.613 回答