很简单,这个问题或答案在我看过的任何地方都不存在。
目标是重新索引节点以更新其纬度和经度属性。
我用来在neo4j中完成地理空间操作的插件称为Spatial
这是我的设置
我创建了一个指针:
POST http://localhost:7474/db/data/ext/SpatialPlugin/graphdb/addSimplePointLayer
{
"layer" : "geom",
"lat" : "geolocation.lat",
"lon" : "geolocation.lon"
}
然后我创建了一个geom空间索引:
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"
}
我有一个关于如何完成重建索引的理论。首先,我将从地理空间索引中删除该节点,然后重新添加它。但是我担心这可能会搞砸了。我在其他地方读过删除索引然后添加它们会产生问题。
重新建立节点索引的正确方法是什么?
答案 0 :(得分: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混淆。它是用于引用您编制索引的节点的属性。