1

簡単に言えば、この質問または回答は、私が調べたどこにも存在しません。

目的は、ノードのインデックスを再作成して、緯度と経度のプロパティを更新することです。

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"
}


インデックスの再作成がどのように行われるかについて、私は理論を持っています。まず、地理空間インデックスからノードを削除してから、再度追加します。しかし、これが何かを台無しにするのではないかと心配しています。インデックスを削除してから追加すると、問題が発生する可能性があることを他の場所で読みました。

ノードを再インデックス化する適切な方法は何ですか?

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 に答える