2

タグ ノードと URL ノードを使用してデータベースを構築しており、URL ノードはタグ ノードに接続されています。この場合、同じ URL がデータベースに挿入された場合、重複する URL ノードを作成するのではなく、タグ ノードにリンクする必要があります。インデックスを作成することで、この問題が解決すると思います。neo4jrestclient でインデックス作成とトラバーサルを行うにはどうすればよいですか?. チュートリアルへのリンクは問題ありません。現在、逆の neo4jrestclientを使用しています。

ありがとう

4

2 に答える 2

3

重要な概念は、インデックスがキー/値/オブジェクトのトリプレットであり、オブジェクトがインデックスを作成するノードまたは関係のいずれかであるということです。

インデックスを作成して使用する手順:

グラフ データベース レスト クライアントのインスタンスを作成します。

from neo4jrestclient.client import GraphDatabase
gdb = GraphDatabase("http://localhost:7474/db/data/")

ノードまたは関係インデックスを作成する (ノード インデックスの作成はこちら)

index = gdb.nodes.indexes.create('latin_genre')

ノードをインデックスに追加する

nelly = gdb.nodes.create(name='Nelly Furtado')
shakira = gdb.nodes.create(name='Shakira')

index['latin_genre'][nelly.get('name')] = nelly
index['latin_genre'][shakira.get('name')] = shakira

インデックスに基づいてノードを取得し、さらに処理を行います。

for artist in index['latin_genre']['Shakira']:

  print artist.get('name')

詳細については、webadminのメモを参照してください。

Neo4j には、ノード インデックスと関係インデックスの 2 種類のインデックスがあります。ノード インデックスを使用してノードにインデックスを付けて検索し、関係インデックスを使用して関係に対して同じことを行います。

各インデックスにはプロバイダーがあり、これはそのインデックスを処理する基になる実装です。デフォルトのプロバイダーは lucene ですが、必要に応じて独自のインデックス プロバイダーを作成できます。

Neo4j インデックスは、キー/値/オブジェクトのトリプレット (「オブジェクト」はノードまたは関係) を取り、キー/値のペアにインデックスを付け、これを提供されたオブジェクトに関連付けます。キー/値/オブジェクトのトリプレットのセットにインデックスを付けた後、インデックスをクエリして、クエリに一致するキー/値のペアでインデックス付けされたオブジェクトを取得できます。

たとえば、データベースに「ユーザー」ノードがあり、ユーザー名または電子メールですばやく検索したい場合は、「ユーザー」という名前のノード インデックスを作成し、各ユーザー インデックスのユーザー名と電子メールを作成できます。デフォルトの lucene 構成では、「username:bob OR email:bob@gmail.com」のようなクエリで「Users」インデックスを検索できます。

データ ブラウザを使用して、この方法でインデックスをクエリできます。上記のクエリの構文は、「node:index:Users:username:bob OR email:bob@gmail.com」です。

于 2012-12-20T19:58:57.510 に答える