初探Neo4J中的Cypher
來源:程序員人生 發布時間:2015-05-25 09:25:25 閱讀次數:4289次
由于RDF數據庫需要,需要調研圖形數據庫,選擇了Neo4J進行嘗試,發現它包括了1個名為“Cypher”的操作語言,使用了1下感覺非常不錯,所有有寫點東西的必要。
從官網上盜個圖:
其實,這個圖也就標識了cypher語言的基本功能,節點a到節點b,關系是LIKES,其操作的方法與sql的select1樣選擇符合某種條件的實體,由此強烈建議大家使用網頁版進行熟習操作,比較直觀,可以直接得到圖形。
閑話少說,我們姑且成上面的為萬能公式,該萬能公式大體上分為兩個部份()與[],其中()表示某個節點可以當作是關系
數據庫中的某條記錄或RDF中的實體,[]表是某種關系,從而創建了實體與實體之間的關系;
以后根據萬能公式完成匹配和其他的操作,關鍵詞Match Return。
Match(a) Return a,含義表示返回所有的節點,其中a就是定義變量的方式;
Match(a:Person) Return a,返回所有Person種別的節點,其中Person類型在節點創建的進程中進行指定;
Match(a:Person:Teacher) Return a,返回所有Teacher同時屬于Person種別的節點(例子有點不恰當),從這個例子我們可以看出例子我們可以看出只要你想的到多少種別都可以;
除此以外,我們可以通過create創建節點;
create (:Person {name:"李晨"}),創建1個名為李晨的節點;
create (fan:Person {name:"范冰冰"}) return fan,創建1個名為范冰冰的節點,并返回,從這個里面我們可以看到類型前面可以變量,需要說明的是即便你不加類型仍然可以進行聲明;
Match(li:Person {name:"李晨"}) Match(fan:Person {name:"范冰冰"}) create (fan) -[:弄定]->(li) return fan,li,完成了關系,范冰冰 弄定 李晨;
最后,還需要說明的1個是shortestPath,顧名思義查找最短路徑,熟習RDF的大概都能了解Relfinder功能,二者功能類似,白話來說就是,找到1個小A和小B,他們之間有無關系呢,就是通過shortestPath方法來實現,起就是都過關系來規定幾度關系來進行推斷;
Match(a:Person {name:"小A"}) Match(b:Person {name:"小B"}) p= shortpath((a) -[:朋友*..2]->(b)) return a,b,p,返回所有小A和小B之間能產生2度之內好友關系的可能路徑。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈