2017-04-26 71 views
1

我有兩個單詞BANGALURU和BENGALURU。NEO4j密碼查詢匹配相同的單詞

現在我要創建在Neo4j的節點,我必須創建只有一個節點,這意味着BANGALURU和BENGALURU應被視爲一個創建只有一個節點

請告訴我,我怎麼可以創建Neo4j的暗號查詢爲了這。

+0

你能更好地描述你的用例在更廣泛的範圍?這聽起來像你需要通過單詞快速查找節點。你在圖中使用了哪些標籤?在其他情況下,您需要支持與單個節點匹配的多個單詞嗎? – InverseFalcon

+0

我的問題是這樣的。我需要在neo4j中創建節點,如下MERGE(l:Location {Type:'Place',name:'BANGALORE}}),這裏查詢是使用標籤Location和BANGALORE屬性創建的。現在我又有一個名爲「BENGALORE」的屬性名稱。現在如果我正在嘗試創建節點,它應該告訴我已經創建了節點BENGALORE,這意味着它應該將BANGALORE和BENGALORE視爲相同。像孟買和孟買等...... –

回答

0

沒有好方法讓具有兩個值的節點用於支持使用索引快速查找的相同屬性。

我建議創建一個名稱與其他節點具有ALIAS關係的位置節點。也許還可以添加一個:Alias標籤到節點。例如:

(:Location:Alias{Type:'Place', name:'BENGALORE'})<-[:ALIAS]-(:Location{Type:'Place', name:'BANGALORE'}) 

您可以使用不帶::Alias的Location節點作爲任何其他連接的根節點。

但是,匹配會稍微複雜一些。查找查詢可能類似於:

MATCH (a:Location)<-[:ALIAS*0..1]-(l:Location) 
WHERE a.name = {nameLookup} AND NOT l:Alias 

這兩個別名與非別名節點工作,爲0的關係模式的最低界限將匹配:位置節點本身(al會同一個節點)。