私はeveryman neo4jクライアントを調べています( https://github.com/jadell/neo4jphp/wiki )
それは非常に有望で快適に使用できます。しかし、私はインデックスについて少し混乱しています。Neo4j では、インデックスを追加できることを知っています。
CREATE INDEX ON :Person(name)
私の記憶が正しければ、これによりすべての Person ノードが名前で自動的にインデックス付けされます。
everyman クライアント ライブラリのインデックスに関するセクションでは、次のようにインデックスを作成してノードに追加できることが示されています。
$shipIndex = new Everyman\Neo4j\Index\NodeIndex($client, 'ships');
(PS: 上記の行は正確には何をしますか?)
$heartOfGold = $client->makeNode()
->setProperty('propulsion', 'infinite improbability drive')
->save();
// Index the ship on one of its properties
$shipIndex->add($heartOfGold, 'propulsion', $heartOfGold->getProperty('propulsion'));
さて、私の質問です。上記の例のように PHP コードにインデックスを手動で追加する必要があるのはいつですか? また、Neo4j データベースにインデックスを追加して自動インデックス作成に依存する必要があるのはいつですか? 後者の場合、次のようなコードでインデックス検索を利用できますか。
$match = $shipIndex->findOne('captain', 'Zaphod');
?