如何在GraphRepository中存储节点以及Neo4j-Spatial索引

时间:2014-07-03 19:01:32

标签: playframework spring-data-neo4j neo4j-spatial

我在 Play!Framework 应用程序中使用 Neo4j-Spatial Spring 数据。

我有一个类型为 User 的@NodeEntity,我希望将其存储在数据库中,以及基于位置的查询的空间索引。

我见过的示例使用GraphDatabaseService创建一个Node:

Node stadiumNode = graphDatabaseService.createNode();

然后将此节点添加到空间索引:

Index<Node> index = graphDatabaseService.index().forNodes(indexLayerName, config)`;
stadiumNode.setProperty("wkt", String.format("POINT(%s %s)", lat, lon)); 
index.add(stadiumNode, "dummyA", "dummyB");

但是,节点没有与之关联的特定类型(例如 User )。为此,我必须先创建interface UserRepository extends GraphRepository<User>

@Autowired
private UserRepository userRepository;

然后将User nodeEntity添加到存储库:

User user = new User();
userRepository.save(user);

但是,这会创建 3个节点(空间索引RTree中为1,neo4j图中为2)。这样做的正确方法是什么?我只想要2个节点:

  1. neo4j图表中用户类型的一个节点
  2. 包含与上述节点关联的位置信息的一个节点。

0 个答案:

没有答案