サーバーに Neo4j Spatial プラグインを設定し、SDN 3.1.2 を使用して wkt インデックスを作成しています。
@Indexed(indexName = "CarsLocation", indexType = IndexType.POINT) var wkt: String
withinDistance
全体がうまく機能し、次のように HTTP コンソールを使用してクエリを作成し、一致したノードを返すことができます。
POST /db/data/ext/SpatialPlugin/graphdb/findGeometriesWithinDistance {"layer":"CarsLocation","pointX":48.892501,"pointY":2.373140,"distanceInKm":100.0}
ただし、次のようにCypherを使用してクエリを実行したい:
start n = node:CarsLocation("withinDistance:[48.892501,2.373140,100.0]") return n
値に関係なく、0行を返すだけです。
Car ノードを空間インデックス CarsLocation に手動で追加することを勧めるこの投稿に出会いました。
だから私はこのコマンドを実行しました:
POST /db/data/index/node/CarsLocation {"value":"dummy","key":"dummy", "uri":"http://localhost:7474/db/data/node/30"} //30 being the Car node I want to index
しかし、それは暗号クエリを機能させません。
また、http 呼び出しで Cypher を実行してみます。
POST /db/data/cypher {"query" : "start n = node:CarsLocation({indexQuery}) return n", "params": {"indexQuery": "withinDistance:[48.892067, 2.373140, 10.0]"}}
どちらも機能しません。
ただし、膨大な数のキロメートル (IMO が制限を超えている) を指定すると、次のものが通過します。
start n = node:CarsLocation("withinDistance:[48.892501,2.373140,10000.0]") return n
(私の車のノード 30 を返します)。
何か重要なことを見逃しましたか?
Cypherクエリが機能しないために、どこが間違いなのかわかりません。
私はNeo4j 2.1.2を使用していることを指摘しています。