2014-12-02 105 views
1

當我運行下面 查詢查詢1是生產結果返回的所有類別標籤的所有文檔的文檔。請注意,文檔可以有多個類別,因此可以隨時收集它們。Neo4j的查詢加入多個匹配返回結果

START doc = node:entities(type = "document-link") 
MATCH category-[:category]-doc<-[:`document-link`]-id 
RETURN 
    doc.title as title, 
    COLLECT(COALESCE(category.category, "")) as categories 

查詢2正在生成結果爲所有文檔返回文檔的語言。文檔只能有一種語言類型。

START doc = node:entities(type = "document-link") 
MATCH lan-[:language]-doc<-[:`document-link`]-id 
RETURN 
    doc.title as title, 
    lan.language as language 

查詢3是1和2的連接正在產生空結果。有人可以突出我做錯了什麼?

START doc = node:entities(type = "document-link") 
MATCH category-[:category]-lan-[:language]-doc<-[:`document-link`]-id 
RETURN 
doc.title as title, 
lan.language as language, 
COLLECT(COALESCE(category.category, "")) as categories 
+1

的?在比賽中!對於版本1.9和之前版本的屬性是過時的語法,請更新到像2.1.6最近的版本 – 2014-12-05 06:59:18

回答

1

在您的第三個查詢中,您可以匹配類別和語言之間的關係,而在前兩個查詢中不會這樣做。這個怎麼樣:

START doc = node:entities(type = "document-link") 
MATCH category-[:category]-doc<-[:`document-link`]-id 
MATCH doc-[:language]-lan 
RETURN 
doc.title as title, 
lan.language as language, 
COLLECT(COALESCE(category.category, "")) as categories 
+0

感謝這工作。順便說一句,我在neo4j上進行調試,在那裏我試圖修改現有的密碼,但調試器在我使用「?」時抱怨。在比賽中,建議使用可選比賽結果也使用「?」要麼 」!」也失敗了,但它在代碼中起作用。你知道的原因,例如類別可以有空字段或標題可能是空的,我可能想要插入的東西,而不是空。感謝您的幫助提前。 – 2014-12-03 08:55:55

+0

如果有效,請接受並提出答案:)。至於這個問題,我不完全確定。據我所知,空值字段甚至不允許。也許你可以在這裏發佈你的附加問題在stackoverflow :) – 2014-12-03 09:03:49

相關問題