Neo4j中的地理定位距离查询



我在Neo4j中查看了地理位置查询,但我认为没有像Elasticsearch中那样的内置支持。我看过neo4j contrib spatial,但我可以看到它是高度基于Java的,而我将从.NET中与neo4j对话。似乎有一个服务器插件,但我不确定,因为我还没有找到任何关于它的示例。

因此,我更喜欢通过数学函数自己编写地理定位查询,但我不确定大容量数据集的性能如何。

在Neo4j中处理此类查询的首选方式是什么?例如,回答以下问题:

谁是我的朋友,他们喜欢和我一样的产品,住在我10公里半径内?

安装后,空间扩展包括一个可以从Cypher引用的索引提供程序。所以你的问题可以用这样的查询来回答:

START n=node:geom('withinDistance:[46.9163, -114.0905, 10.0]')
MATCH (me:Person {name: "Bob"})-[:FRIENDS_WITH]-(n)
MATCH (n)-[:LIKED]->(p:Product)<-[:LIKED]-(me)
RETURN n

这里和这里有一系列关于这个的博客文章。

最新更新