【发布时间】:2012-09-18 22:27:42
【问题描述】:
我需要一个非常简单的示例来说明如何使用 Neo4JClient 将节点添加到索引
在下面的 C# 代码中,我创建了一个索引和一个员工节点。
问题:
在下面的代码中,如何将创建的节点添加到索引中?解决方案应允许搜索 EmployeeID 或 Name。
【问题讨论】:
标签: neo4j neo4jclient
我需要一个非常简单的示例来说明如何使用 Neo4JClient 将节点添加到索引
在下面的 C# 代码中,我创建了一个索引和一个员工节点。
问题:
在下面的代码中,如何将创建的节点添加到索引中?解决方案应允许搜索 EmployeeID 或 Name。
【问题讨论】:
标签: neo4j neo4jclient
注意:此答案适用于 Neo4jClient 1.0.0.474。确保您已更新。
创建节点时,可以提供索引条目:
var employeeRef = graphClient.Create(
employee,
new IRelationshipAllowingParticipantNode<Employee>[0],
new []
{
new IndexEntry("employee")
{
{"EmployeeID", 1234 },
{ "Name", "Mike" }
}
}
);
由于以下几个原因,它看起来有点冗长:
如果没有至少一个关系,您几乎永远不会创建节点。第二个参数中的关系会很好地叠加。
一个节点可以有多个索引,键和值不必与节点匹配。
我们想让这种语法更适合默认场景,但还没有做到。
当你更新一个节点时,你还需要提供新的索引条目:
graphClient.Update(employeeRef,
e =>
{
e.Name = "Bob";
},
e => new[]
{
new IndexEntry("employee") { { "Name", e.Name } }
});
您可以使用graphClient.ReIndex 重新索引节点而不更新节点本身。
如果您想将现有节点添加到索引而不更新它,也只需使用graphClient.ReIndex。 (该方法不对节点已经在索引中做出任何假设。)
【讨论】: