我有170万英镑的邮政编码,我希望根据邮政编码进行搜索,以返回最近的事物列表。这将是一个渐进的列表,即从最近的列表开始,当我们向下滚动它将返回连续的最近的事物。对于例如开始显示1/4英里内的东西,我们向下滚动它延伸到1 / 2,3 / 4,1,2,3..N。
创建从一个节点到最近的节点之间的关系是一种正确的方法,这个节点在1/4英里范围内,并且每个节点将与1/4英里内最近的节点建立关系,依此类推?
还有其他替代建模方法吗?
我玩过MongoDb,从x半径内的邮政编码中返回最近的邮政编码非常快。但是,我想使用Neo4j,因为我的实体/节点有许多其他连接的东西(其中一个是它们之间的距离)。
答案 0 :(得分:1)
它还取决于您作为节点建模的内容,您是否会为后置代码区域建模?
您是否了解他们之间的关系和距离?一般情况下,您可以将它们建模为邻居,并将它们的中心距离建立在关系上,然后进行深入挖掘就可以轻松扩展邻居查询。
MATCH (pc:PostCode {code:"SE1 0NZ"})-[rels:NEIGHBOUR*..5]->(other:PostCode)
WHERE reduce(dist=0, r in rels | dist + r.dist) < 0.5
RETURN distinct other
LIMIT 15