是否可以通过地理距离和节点属性过滤 Neo4j 中的节点,返回节点的某个顺序而不是它们的距离(如时间戳)。我可以使用标准的基于 lucene 的索引和 neo4j 地理层来做一个或另一个,但我似乎无法将两者结合起来以提供全面的查找。任何关于如何实现这一目标的想法都将不胜感激。非常感谢,詹姆斯。
问问题
100 次
1 回答
0
是的,请参阅这篇博文。
您必须有一个LayerNodeIndex
适当的位置,您已将节点添加到:
LayerNodeIndex layerIndex = new LayerNodeIndex("layerIndex", graphDb, config);
然后你只需查询索引:
IndexHits hits = index.query(LayerNodeIndex.WITHIN_DISTANCE_QUERY, params);
Double coords = new Double[]{ 10.415039d, 51.151786d };
Map<String, Object> params = new HashMap<String, Object>();
params.put(LayerNodeIndex.POINT_PARAMETER, coords.toArray());
params.put(LayerNodeIndex.DISTANCE_IN_KM_PARAMETER, dist);
IndexHits hits = index.query(LayerNodeIndex.WITHIN_DISTANCE_QUERY, params);
于 2014-09-25T20:11:26.313 回答