gpt4 book ai didi

java - 所有节点上的密码索引公共(public)属性

转载 作者:行者123 更新时间:2023-11-30 08:14:40 25 4
gpt4 key购买 nike

根据新的索引规则,auto_index 将在未来消失,预计将使用 cypher 创建索引。根据这种新方法,要 inode 属性,您必须提供节点标签。

我在所有类型的节点标签(用户、员工、银行、汽车等)上都有一个“nodeId”属性。我曾经自动索引此属性以检索任何类型的节点,如果它的 nodeId 是已知的。请注意,由于自动索引不需要我提供节点标签,因此我可以做我所做的事情。

ReadableIndex<Node> readableIndex = this.graphDatabaseService.index().getNodeAutoIndexer().getAutoIndex();
readableIndex.get("nodeId", "0").getSingle();

但是对于新样式,我必须为每个节点标签在 nodeId 属性上创建索引。所以我必须这样做:

create index on :User(nodeId)
create index on :Employee(nodeId)
...

此外,我的方法 getByNodeId(String nodeId) 现在没用了,因为这个密码查询恕我直言将无法再使用索引,因为我没有传递任何节点标签。

match (node) where node.nodeId = {nodeId} return node;

因为我的 getByNodeId() 方法的全部要点是在所有节点上通用,所以我不能给这个密码查询一个节点标签。那我在这里应该怎么办。我的两个问题是:

  • 我如何通过密码告诉 neo4j 在所有节点标签上建立索引
  • 如何编写密码查询,它使用的索引不是基于节点标签,而是基于节点属性。

注意:

  • 使用 cypher 对我来说很重要,因为我正在使用 neo4j-jdbc他们没有办法创建自动索引或访问自动索引器(至少我不知道)。

  • 有些人可能会建议我更改 neo4j.properties 以启用在那里自动索引,但我不喜欢更改配置文件。我想在我的程序中这样做。无论如何,那只会解决首要问题。第二期还在。

最佳答案

一个节点可以有多个标签。

因此,如果您让所有节点共享一个公共(public)标签,比如 Base(除了它们当前拥有的任何标签),您可以只拥有一个覆盖所有节点的索引:

CREATE INDEX ON :Base(nodeId)

关于java - 所有节点上的密码索引公共(public)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29353718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com