2017-10-17 63 views
0

跟進的問題:Organize alternative names (nicknames, aliases) in neo4jNeo4j的多個索引名稱與架構指標

有沒有辦法做這樣的事情:

CREATE INDEX ON :Node(name); 
CREATE (n:Node {name: ["nameA", "nameB"]}); 
MATCH (n:Node {name: "nameA"}) return n; 
  1. 索引節點的name屬性。
  2. 使用名稱的集合(數組)作爲節點的名稱。
  3. 搜索其中一個名稱並返回節點。

我必須使用傳統索引還是可以通過常規索引來實現?

我在問自從原來的問題已經超過3歲,並且我認爲可能已經添加了類似的功能。

回答

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;