データ量の継続的な増加とデータ構造の変化により、従来のリレーショナル データベースではもはやニーズを完全に満たすことができなくなりました。したがって、NoSQL データベースは開発者からますます注目を集めています。中でも、グラフ データベースは人気のあるデータベース タイプとなっています。
Neo4j はグラフ データベースの一種で、グラフ理論とインデックス構造に基づいており、効率的なグラフ操作をサポートします。 Java 開発では、Neo4j の Java API を介したグラフ データ処理により、開発者はグラフ データの構築と操作が容易になります。
この記事では、Neo4j の Java API を紹介し、Java アプリケーションでのグラフ データベース処理に Neo4j を使用する方法を例を通して説明します。
Neo4j のインストール
まず、Neo4j データベースをインストールする必要があります。 Neo4j の公式 Web サイト (https://neo4j.com/) にアクセスして、オペレーティング システムに適したインストール プログラムをダウンロードし、プロンプトに従ってインストールします。
インストールが完了したら、Neo4j データベースを起動し、Neo4j ブラウザ インターフェイスにアクセスします (デフォルトでは、ブラウザ インターフェイスのアドレスは http://localhost:7474/)。ログインに成功すると、Neo4j コントロール パネルが表示されます。
ノードの作成
グラフ データ処理に Java API を使用する前に、最初にいくつかのノードを作成する必要があります。ノードはグラフ データベースの基本単位であり、このノードに関する情報を格納するために使用される 1 つ以上の属性が含まれます。 Java では、Node インターフェースと Label インターフェースを通じてノードを作成できます。
Node インターフェイスはノードを表し、次のコードを使用して新しいノードを作成できます。
try (Transaction tx = graphDb.beginTx()) { Node node = graphDb.createNode(); node.setProperty( "name", "Alice" ); tx.success(); }
上記のコードでは、トランザクション内に新しいノードを作成し、新しいノードを作成します。そのノードには、「name」という属性が値「Alice」とともに追加されます。
Label インターフェイスは、グラフ データベース内のノード ラベルを定義します。このインターフェイスを使用して、1 つ以上のラベルをノードに追加できます。ノードにラベルを追加するには、次のコードを使用できます。
try (Transaction tx = graphDb.beginTx()) { Node node = graphDb.createNode(Label.label("Person")); node.setProperty( "name", "Alice" ); tx.success(); }
上記のコードでは、「人」というラベルをノードに追加しました。
関係の作成
グラフ データベース内の関係は 2 つのノード間の接続です。関係を作成するには、Relationship インターフェイスと RelationshipType インターフェイスを使用できます。
RelationshipType インターフェイスは、グラフ データベース内のすべての可能な関係タイプを定義します。このインターフェイスを使用して、新しい関係タイプを作成できます。関係タイプの作成例を次に示します。
public enum Rels implements RelationshipType { KNOWS, FRIEND_OF }
上記のコードでは、KNOWS と FRIEND_OF という 2 つの関係タイプを定義しました。
関係を作成するには、次のコードを使用できます。
try (Transaction tx = graphDb.beginTx()) { Node alice = graphDb.findNode(Label.label("Person"), "name", "Alice"); Node bob = graphDb.findNode(Label.label("Person"), "name", "Bob"); alice.createRelationshipTo(bob, Rels.KNOWS); tx.success(); }
上記のコードでは、アリスからボブへの KNOWS タイプの関係を作成しました。
データのクエリ
データのクエリは、グラフ データベースで最も一般的に使用される操作の 1 つです。データ クエリには、Cypher クエリ言語または Traversal API を使用できます。 Java では、次のコードを使用してデータをクエリできます。
try (Transaction tx = graphDb.beginTx()) { ResourceIterator<Node> nodes = graphDb.findNodes(Label.label("Person"), "name", "Alice"); while(nodes.hasNext()) { Node node = nodes.next(); System.out.println(node.getProperty("name")); } tx.success(); }
上記のコードでは、ラベル「person」と属性「name」が「Alice」に等しいすべてのノードの名前をクエリします。
データの削除
グラフ データベースでノードまたは関係を削除するには、まずノードまたは関係を見つけてから削除する必要があります。以下は、ノードを削除する例です。
try (Transaction tx = graphDb.beginTx()) { ResourceIterator<Node> nodes = graphDb.findNodes(Label.label("Person"), "name", "Alice"); while(nodes.hasNext()) { Node node = nodes.next(); Iterable<Relationship> relationships = node.getRelationships(); for(Relationship relationship : relationships) { relationship.delete(); } node.delete(); break; } tx.success(); }
上記のコードでは、ラベルが「person」、属性が「alice」である「name」を持つすべてのノードをクエリし、このノードを削除し、関連するすべての関係。
概要
この記事では、Neo4j の Java API を紹介し、Java アプリケーションでのグラフ データベース処理に Neo4j を使用する方法を例を通して説明します。 Neo4j の Java API を使用すると、開発者はグラフ データをより簡単に構築および操作し、そこからより貴重な情報を取得できるようになります。
以上がJava API開発におけるグラフデータベース処理にNeo4jを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。