当前位置: 首页 > 知识库问答 >
问题:

Neo4JClient-如何将节点添加到索引

蒋星雨
2023-03-14

我需要一个非常简单的例子,说明如何使用Neo4JClient将节点添加到索引中

在下面的C代码中,我创建了一个索引和一个员工节点。

问题:
在下面的代码中,如何将创建的节点添加到索引中?解决方案应允许搜索员工ID或姓名。

    class Program
    {
        static void Main(string[] args)
        {
            //Connect to Neo4J
            var graphClient = new GraphClient(new Uri(@"http://localhost:7474/db/data"));
            graphClient.Connect();

            //Create Index
            graphClient.CreateIndex("employee", new IndexConfiguration() { Provider = IndexProvider.lucene, Type = IndexType.exact }, IndexFor.Node);

            //Create an Employee node
            var employee = new Employee() { EmployeeID = "12345", Name = "Mike"};
            NodeReference employeeRef = graphClient.Create(employee);

            //Add the node that was just created to the Employee index.  

        }
        private class Employee
        {
            [JsonProperty("EmployeeID")]
            public string EmployeeID { get; set; }

            [JsonProperty("Name")]
            publi

共有1个答案

任绪
2023-03-14

注:此答案适用于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重新索引节点,而无需更新节点本身。重新索引

    如果您想将现有节点添加到索引中,而不更新它,只需使用图形客户端。重新索引以及。(该方法不会对已经在索引中的节点做出任何假设。)

  •  类似资料:
    • 我在Neo4jClient中的ID工作方式有问题。我想要我的。NET模型具有标识符属性,理想情况下,我希望只对该节点使用Neo4j自动增量id。 但是,无论我在模型类中使用何种情况(,,),它总是将其作为另一个字段添加到Neo4j中(在创建新节点时将其保持为0)。因此,当我在Neo4j浏览器中查看该节点时,它有一个

    • 我将一些数据存储为neo4j节点。此节点具有一些关联的C#类未描述的属性,因此在neo4jclient查询返回时不会自动映射回该类。 例如,这个C类: 存储在neo4j中,然后使用以下neo4jclient fluent代码检索: 将用名称和编号填充Node对象,但保留对CustomClass对象的空引用。 为了解决这个问题,我将CustomClass序列化为JSON字符串,并将其作为字符串属性存

    • 嘿,我一直在研究BFS/DFS,我注意到它们中的许多都有一个轻微的修改,即当一个节点添加到访问集时。 在某种程度上,算法将从堆栈/队列中弹出节点,然后将其添加到访问集。然后它会添加所有没有被访问过的邻居 在另一个实现中,节点不会添加到访问集。相反,它会将所有未访问的邻居添加到堆栈/队列中,但会在将这些邻居添加到堆栈/队列时将其添加到已访问集中。 总之,在一种方法中,当它们弹出到堆栈/队列时,它们被

    • 因此,我有一个从扩展而来的常规组件,我想将其添加到一些FXML代码中。我得到extends: 我试图把它包括成这样: FXML代码和类位于同一个包/目录中。 我可以像这样包括FXML文件,但我想包括一个类文件:

    • 我在课堂上有一个关于Java的作业。它是关于雇员的,所以有三个类,雇员,雇员列表和节点。我需要用这个做一个双链接列表。链表是我们定制的类,而不是Java提供的类。 现在我被困在添加(雇员)方法中。该方法输入参数一个雇员对象,并被要求添加到列表的末尾。 这是密码 简单地说,当列表为空时,该方法会将员工完美地添加到节点中,即使我将第二个员工添加到列表中,也没有问题;但当我再添加,并尝试检索它时,我最终

    • 问题内容: 这是我所拥有的: 如何编写代码以在列表末尾添加节点? 所以如果我有 我怎么去 其实…我什至不确定是否要添加到最后。我认为添加然后排序是有效的吗?不确定。 谢谢! 问题答案: