2

Play!Frameworkアプリケーション でSpringデータを使用してNeo4j-Spatialを使用しています。

データベースに格納したいUserタイプの @NodeEntity と、ロケーションベースのクエリ用の空間インデックスがあります。

私が見た例では、GraphDatabaseService を使用してノードを作成しています。

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");

ただし、 Node には特定のタイプ ( 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 グラフのUserタイプの 1 つのノード
  2. 上記のノードに関連付けられた位置情報を含む 1 つのノード。
4

0 に答える 0