3.1.2 模式(Patterns)
Neo4j圖由節(jié)點和關(guān)系構(gòu)成。節(jié)點可能還有標(biāo)簽和屬性,關(guān)系可能還有類型和屬性。節(jié)點表達(dá)的是實體,關(guān)系連接一對節(jié)點。節(jié)點可以看作類似關(guān)系數(shù)據(jù)庫中的表,但又不完全一樣。節(jié)點的標(biāo)簽可以理解為不同的表名,屬性類似關(guān)系數(shù)據(jù)庫中表的列。一個節(jié)點的數(shù)據(jù)類似關(guān)系數(shù)據(jù)庫中表的一行數(shù)據(jù)。擁有相同標(biāo)簽的節(jié)點通常具有類似的屬性,但不必完全一樣,這一點與關(guān)系數(shù)據(jù)庫中一張表中的行數(shù)據(jù)擁有相同的列是不一樣的。
然而,節(jié)點和關(guān)系都是簡單的低層次的構(gòu)建塊。單個節(jié)點或者關(guān)系只能編碼很少的信息,但模式可以將很多節(jié)點和關(guān)系編碼為任意復(fù)雜的想法。
Cypher查詢語言很依賴于模式。只包含一個關(guān)系的簡單模式連接了一對節(jié)點。例如,一個人LIVES_IN在某個城市或者某個城市PART_OF一個國家。使用了多個關(guān)系的復(fù)雜模式能夠表達(dá)任意復(fù)雜的概念,可以支持各種有趣的使用場景。例如,下面的Cypher代碼將兩個簡單的模式連接在一起:

像關(guān)系數(shù)據(jù)庫中的SQL一樣,Cypher是一種文本的聲明式查詢語言。它使用ASCII art(4)的形式來表達(dá)基于圖的模式。采用類似SQL的語句,如MATCH、WHERE和DELETE,來組合這些模式以表達(dá)所預(yù)期的操作。
3.1.2.1 節(jié)點語法
Cypher采用一對圓括號來表示節(jié)點,如:()、(foo)。下面是一些常見的節(jié)點表示法:

簡單的()表達(dá)了一個匿名節(jié)點。如果想在其他地方引用這個節(jié)點,可以添加一個變量,如(matrix)。此變量的可見范圍局限于單個語句。
Movie標(biāo)簽聲明了節(jié)點的類型。Neo4j節(jié)點索引也會使用到標(biāo)簽,每個索引都是建立在一個標(biāo)簽和屬性的組合上。節(jié)點的屬性以key/value列表的形式存在,并外加一對大括號。屬性可以存儲信息和(或)限制模式。
3.1.2.2 關(guān)系語法
Cypher使用一對短橫線(即--)表示一個無方向關(guān)系。有方向的關(guān)系在其中一段加上一個箭頭(即<--或-->)。方括號表達(dá)式[…]可用于添加詳情。里面可以包含變量、屬性和(或者)類型信息。關(guān)系的常見表達(dá)方式如下:

關(guān)系的方括號內(nèi)的語法和語義與節(jié)點類似,定義了可以在別處引用的變量,關(guān)系的類型類似于節(jié)點的標(biāo)簽,關(guān)系的屬性等同于節(jié)點的屬性。注意,屬性的值可以是數(shù)組。
3.1.2.3 模式語法
將節(jié)點和關(guān)系的語法組合在一起可以表達(dá)模式。下面是一個簡單的模式:

3.1.2.4 模式變量
為了增強模塊性和減少重復(fù),Cypher允許將模式賦給一個變量。這使得匹配到的路徑可以用于其他表達(dá)式。如:

- 企業(yè)數(shù)字化創(chuàng)新引擎:企業(yè)級PaaS平臺HZERO
- Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)
- Spark快速大數(shù)據(jù)分析(第2版)
- 數(shù)據(jù)庫技術(shù)及應(yīng)用教程
- Apache Kylin權(quán)威指南
- 重復(fù)數(shù)據(jù)刪除技術(shù):面向大數(shù)據(jù)管理的縮減技術(shù)
- Chef Essentials
- SQL Server深入詳解
- 深入理解InfluxDB:時序數(shù)據(jù)庫詳解與實踐
- 數(shù)據(jù)分析師養(yǎng)成寶典
- Hadoop 3實戰(zhàn)指南
- SIEMENS數(shù)控技術(shù)應(yīng)用工程師:SINUMERIK 840D-810D數(shù)控系統(tǒng)功能應(yīng)用與維修調(diào)整教程
- 企業(yè)級大數(shù)據(jù)項目實戰(zhàn):用戶搜索行為分析系統(tǒng)從0到1
- 數(shù)據(jù)挖掘與機器學(xué)習(xí)-WEKA應(yīng)用技術(shù)與實踐(第二版)
- 基于數(shù)據(jù)發(fā)布的隱私保護(hù)模型研究