2014-01-10 66 views
1

我一直在使用下面的暗號查詢如何在neo4j中的標籤下分組節點之間創建關係?

醫藥集團

CREATE (p1:pharma { name: " Magnesium ", id: " 12 " }) 
CREATE (p2:pharma { name: " Hyoscine Butylbromide ", id: " 22 " }) 
CREATE (p3:pharma { name: " Propantheline Bromide ", id: " 23 ", }); 

IND組

CREATE (i1:ind { id: '1', name: 'Dyspepsia', pdfk: '12'}) 
CREATE (i2:ind { id: '5', name: 'Symptomic relief of intestinal disorder', pdfk: '22'}) 
CREATE (i3:ind { id: '6', name: 'Symptomic relief of disorder', pdfk: '22'}) 
CREATE (i4:ind { id: '7', name: 'Bowel colic', review: 'False', pdfk: '23'}); 

創建了兩個組節點的圖它只是像關係數據庫tabels,現在我想要定義這兩組節點之間的關係..

關係like = pharma與id 12中的節點具有關係n ame HAS_IND與ind中id爲1的節點?

某處這樣

MATCH (a:pharma),(b:ind) 
WHERE a.id = '12' AND b.id = '1' 
CREATE (a)-[:has_ind]->(b); 

我想這些也

MATCH (a:pharmaDrug),(b:indication) 
WHERE a.name = 'Magnesium Carbonate' AND b.name = 'Dyspepsia' 
CREATE (a)-[:has_indication]->(b); 

但兩者都給人在530毫秒在控制檯返回0行?

請幫助我爲此找到正確的密碼查詢。提前致謝。

============================================== ==========================

我的變化是在兩個標籤

如下

CREATE (p1:pharma { name: "Magnesium", id: 12 }) 
CREATE (p2:pharma { name: "Hyoscine Butylbromide", id: 22 }) 
CREATE (p3:pharma { name: "Propantheline Bromide", id: 23 }); 




CREATE (i1:ind { id: 1, name: 'Dyspepsia', pdfk: '12'}) 
CREATE (i2:ind { id: 5, name: 'Symptomic relief of intestinal disorder', pdfk: '22'}) 
CREATE (i3:ind { id: 6, name: 'Symptomic relief of disorder', pdfk: '22'}) 
CREATE (i4:ind { id: 7, name: 'Bowel colic', review: 'False', pdfk: '23'}); 

此創建節點

MATCH (a:pharma),(b:ind) 
WHERE a.id = ' 12 ' AND b.id = ' 1 ' 
CREATE (a)-[:has_indication]->(b); 

這給零行影響沒有輸出?

回答

4

這是因爲你已經創建了項目的方式,如果你看看你的「製藥」的代碼,您有:

CREATE (p1:pharma { name: " Magnesium ", id: " 12 " }) 

來匹配這一點,你需要做的:

MATCH (a:pharma) 
WHERE a.id = ' 12 ' 
RETURN a 

我在'12'周圍添加了額外的空格以使其匹配。所以,你的查詢將作爲閱讀:

MATCH (a:pharma),(b:ind) 
WHERE a.id = ' 12 ' AND b.id = '1' 
CREATE (a)-[:has_indication]->(b) 

現在,這會得到它的工作 - 但它可能是值得改變模型的一點,如果id始終是一個整數,我會改變你的創造對存在:

CREATE (p1:pharma { name: "Magnesium", id: 12 }) 
CREATE (p2:pharma { name: "Hyoscine Butylbromide", id: 22 }) 
CREATE (p3:pharma { name: "Propantheline Bromide", id: 23 }); 

,並SUPER小心你使用"(或')的性格,在原始創建要添加額外的空格的名字,以及(這就是爲什麼你的第二個查詢沒不起作用)

編輯

OK,這是一個全數據的工作集,我已經編輯您都創建語句來得到這個:

CREATE (p1:pharma { name: 'Magnesium', id: 12 }) 
CREATE (p2:pharma { name: 'Hyoscine Butylbromide', id: 22 }) 
CREATE (p3:pharma { name: 'Propantheline Bromide', id: 23}) 
CREATE (i1:ind { id: 1, name: 'Dyspepsia', pdfk: 12}) 
CREATE (i2:ind { id: 5, name: 'Symptomic relief of intestinal disorder', pdfk: 22}) 
CREATE (i3:ind { id: 6, name: 'Symptomic relief of disorder', pdfk: 22}) 
CREATE (i4:ind { id: 7, name: 'Bowel colic', review: 'False', pdfk: 23}) 

基本上我已經刪除了'字符和使用id(和pdfk)的整數。 的MATCH這是:

MATCH (a:pharma),(b:ind) 
WHERE a.id = 12 AND b.id = 1 
CREATE (a)-[:has_ind]->(b) 

並以(從消息拋開你回來)來檢查它的工作原理:

MATCH (p:pharma),(i:ind) RETURN p,i 

你會看到一個鏈接到另一個。

+0

我重新創建了另一個圖形數據庫,並用單引號(刪除雙引號)對我的密碼查詢進行了重新編程,也刪除了整數值的引號。然後我運行密碼來創建關係,如上所述,我得到了相同的結果 - 在702毫秒內返回0行?是否有任何事情要做的屬性文件(自動索引設置爲true)我一直在嘗試這個過去幾天,並沒有發現任何突破... @Chris Skardon – Gopipuli

+0

我曾嘗試過教程在neo4j網站(創建沒有標籤的節點),並定義與開始語法與節點自動索引的關係它正在工作,但我的關係不工作!有沒有這樣的事情我可以做? (start n = node(12),m = node(1)create n <-[:HASIND]-> m;).... – Gopipuli

+0

沒有新的'create'語句和'match',很難說你正在做什麼修改。 。也許你可以將它們添加到你的問題? –

相關問題