2

neo4j 2.0 の新しいラベル機能で自動インデックスをどのように処理する必要がありますか。ユーザーオブジェクトの「名前」などの自動インデックスを作成すると、すべてのオブジェクトの汎用名インデックスが引き続き作成されますか、それともユーザータイプ/ラベル専用であることを指定する方法はありますか。

代わりに、ある種の原子暗号トランザクションでオブジェクトとインデックスを作成する必要がありますか?

ユースケースの例は、大文字と小文字を区別しない一意のユーザー名インデックスを持つユーザー オブジェクトです。

4

2 に答える 2

1

2.0 では、ラベルは優れた機能です。自動インデックス作成の考え方はお勧めしません。ラベルのカスタム インデックスを使用すると、オブジェクトの独自の作成を実現できます。流れとしては、最初にラベルにインデックスを作成し、「ユーザー」がユーザーを識別するためのラベルだとします。

create index on :User(username)

これで、ラベル「ユーザー」を持つすべてのノードの「ユーザー名」に対するインデックスが作成されました。一意のノードを作成するには、作成時に関連付けるものが必要です。現時点ではそのようなものはありません

create unique (n:User {username:"tsartsaris"})

しかし、あなたは使うことができます

CREATE UNIQUE (b)-[:ISUSER]->(m:User {username:"tsartsaris"})

この一意の作成は、label:User および username:tsartsaris で m を検索し、存在しない場合は作成します。コードを再度実行すると、既存のノードが返され、新しいノードは作成されません。2.0 m2 を使用する場合、一意のノードを作成する方法としてマージを使用できます。

  merge (n:User {username:"tsartsaris"})
  RETURN n

merge はグラフ内で一致するものを検索し、見つかった場合はそれを返し、そうでない場合はノードを作成して返します。

于 2013-04-28T06:42:01.980 に答える
1

neo4j 2.0 でのインデックス作成は、ほとんど非表示になります。ラベルとプロパティのインデックスを作成して、そのラベルとプロパティを持つノードがそのインデックスでインデックス付けされるようにすることができます。

ただし、追加する制約 (一意性など) はまだありませんが、開発中であり、f.ex のサポートもありません。大文字と小文字を区別しません。ここで詳細を参照してくださいhttp://docs.neo4j.org/chunked/preview/query-schema-index.html

于 2013-04-27T20:41:30.037 に答える