2015-08-26 197 views
2

我怎樣才能確保其唯一性:唯一索引4

  • 一個圖形實體的財產?
  • 同時組合多個屬性?

目前我使用SDN 4.0.0.RC2。我偷看了the docs,看來SDN 4現在不支持這個功能(但將在未來支持)。我理解正確嗎?

回答

5

爲圖形實體的屬性嗎?

使用暗號對屬性創建一個(可能是唯一的)指標:

CREATE INDEX ON :Person(name) 

唯一索引(又名約束):

CREATE CONSTRAINT ON (p:Person) ASSERT p.name IS UNIQUE 

http://neo4j.com/docs/stable/query-schema-index.html#schema-index-create-index-on-a-label

可以執行這會在你引導你的彈簧環境時自動進行:

@Component 
public class IndexCreator { 

    @Autowired 
    Neo4jTemplate neo4jTemplate; 

    @PostConstruct 
    public void createIndexes() { 
     try { 
      neo4jTemplate.execute("CREATE INDEX ON :Person(name)", null); 
     } catch (Exception ex) { 
      // index already exists? 
     } 
    } 
} 

用於同時組合多個屬性嗎?

這不是直接支持。您可以將多個屬性連接成一個,然後創建一個索引(同時保持原始屬性能夠訪問它們)。或者(正如Michael所指出的那樣),你可以使用數組屬性來存儲多個值。

+0

謝謝!你能否澄清一下在春季環境引導期間如何執行cypher語句? –

+0

添加了一些示例代碼,我沒有在4.x上測試過這個,但應該可以正常工作。 –

+0

您可以使用數組屬性作爲複合索引解決方法 –