是否可以按地理距离和节点属性过滤Neo4j中的节点,返回节点除了距离之外的其他顺序(如时间戳)。我可以使用标准的基于lucene的索引和neo4j geo层来做其中一个,但我似乎无法将两者结合起来提供全面的查找。如何实现这一点的任何想法将非常感激。非常感谢,詹姆斯。
答案 0 :(得分: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);