Neo4j 中的地理位置距离查询
Posted
技术标签:
【中文标题】Neo4j 中的地理位置距离查询【英文标题】:Geolocation distance queries in Neo4j 【发布时间】:2015-12-14 19:21:25 【问题描述】:我在 Neo4j 中查看地理定位查询,但我认为没有像 Elasticsearch 那样的内置支持。我见过neo4j-contrib spatial,但我可以看到它高度基于Java,而我将从.NET 与Neo4j 交谈。似乎有一个服务器插件,但我不确定,因为我无法找到任何样本。
所以,我更倾向于通过Mathematical functions 自己编写地理位置查询,但我不确定大容量数据集的性能如何。
在 Neo4j 中处理此类查询的首选方法是什么?例如,回答以下问题:
谁是我的朋友,他们喜欢和我一样的产品,并且住在我方圆 10 公里内?
【问题讨论】:
【参考方案1】:安装后,空间扩展包含一个可以从 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
here 和 here 上有一系列很好的博文。
【讨论】:
以上是关于Neo4j 中的地理位置距离查询的主要内容,如果未能解决你的问题,请参考以下文章