neo4j具有模式索引的Node的多个索引名称

时间:2017-10-17 14:30:53

标签: indexing neo4j

跟进问题:Organize alternative names (nicknames, aliases) in neo4j

有没有办法做这样的事情:

CREATE INDEX ON :Node(name);
CREATE (n:Node {name: ["nameA", "nameB"]});
MATCH (n:Node {name: "nameA"}) return n;
  1. 索引节点的名称属性。
  2. 使用名称的集合(数组)作为节点的名称。
  3. 搜索其中一个名称并返回节点。
  4. 我是否必须使用旧版索引,还是可以通过常规索引来实现?

    我问,因为原来的问题超过3年,而且我认为可能已经添加了类似的功能。

1 个答案:

答案 0 :(得分:0)

不,“正常”索引不支持。

但您可以更改数据模型以允许多个Name节点指向相同的Node节点,并索引:Name(name)。像这样:

CREATE INDEX ON :Name(name);

CREATE
  (node:Node {id: 123}),
  (:Name {name: "nameA"})-[:NAME_OF]->(node),
  (:Name {name: "nameB"})-[:NAME_OF]->(node);

MATCH (:Name {name: "nameA"})-[:NAME_OF]->(node) return node;