1

很简单,这个问题或答案在我看过的任何地方都不存在。

目标是重新索引节点以更新其纬度和经度属性。

我用来在 neo4j 中完成地理空间操作的插件称为Spatial


这是我的设置

我创建了一个pointlayer:

POST http://localhost:7474/db/data/ext/SpatialPlugin/graphdb/addSimplePointLayer

{
  "layer" : "geom",
  "lat" : "geolocation.lat",
  "lon" : "geolocation.lon"
}


然后我创建一个几何空间索引:

POST http://localhost:7474/db/data/index/node/

{
  "name": "geom",
  "config": {
    "provider": "spatial",
    "geometry_type": "point",
    "lat": "geolocation.lat",
    "lon": "geolocation.lon"
  }
}


我终于将节点添加到索引中:

POST http://localhost:7474/db/data/index/node/geom

{  
  "value": "dummy",
  "key": "dummy",
  "uri": "http://localhost:7474/db/data/node/5734"
}


我有一个关于如何完成重新索引的理论。首先,我会从地理空间索引中删除该节点,然后重新添加它。但我担心这可能会搞砸一些事情。我在其他地方读到删除索引然后添加它们会产生问题。

重新索引节点的正确方法是什么?

4

1 回答 1

0

看起来你可以POST再次调用索引。我还不知道这意味着什么。我也不知道它是否会创建一个新的索引/节点。从我有限的测试来看,它似乎确实可以正确更新。

例子:

POST http://localhost:7474/db/data/index/node/geom

{  
  "value": "dummy",
  "key": "dummy",
  "uri": "http://localhost:7474/db/data/node/5734"
}


您可以通过运行以下 Cypher 查询来验证索引节点是否重复。

MATCH (node { id: 5734 }) 
RETURN node


重要提示:id请勿将上述内容与地理空间节点本身的实际 ID 相混淆。它是用于引用您索引的节点的属性。

于 2015-06-30T03:26:02.277 回答