【发布时间】:2016-05-21 11:00:48
【问题描述】:
我正在调查普通的 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');
?
【问题讨论】:
标签: php indexing neo4j neo4jphp