Neo4jに既に存在するインデックスを作成するように頼むと、例外がスローされることはありません。Cypher:既に存在するスキーマインデックスの作成
session.run("CREATE INDEX ON :User(email)");
質問1:
しかし、どのようにのNeo4jボンネットの下にこれを処理していますか?索引を削除してから再作成するか、索引がすでに存在するため、照会を完全に無視しますか?
私はいくつかのCRUD操作があるので、作成した瞬間に自分のノードのスキーマを定義したいと思っています。これは "CREATE INDEX"と同様に4番目を呼び出していることを意味します。欠点は、インデックスを作成するために作成された冗長呼び出しが作成されるたびに新しいノードが作成されることです。インデックスがすでに存在する場合は無視されても問題ありません。
質問2:
私にはノードがまだラベルユーザーに存在しない場合でも、次の作品に気づいた(私は関連するノードの前にラベルとインデックスを作成することができます意味)。
CREATE INDEX ON :User(email)
は私がのNeo4jに新たなんだと、あなたが存在しない列に索引を作成することはできませんRDBMSの世界に使用します。これらのラベルとプロパティを持つノードを作成する前にインデックスとラベルを作成すると、予期せぬ問題が発生しないはずです。