2013-10-18 173 views
0

在我的數據庫中,我已標記了產品。每個產品都有一個名爲index的數組屬性,其中包含標籤中的所有單詞。在Neo4j的最後一次更新之前,我可以使用下面的查詢來查詢哪些不再有效,我想這可能會被棄用。通過Neo4j中的標籤搜索2.0

MATCH (p:Product)-[:has_tag]->(tag:Tag) 
WHERE ALL (x IN ['game', 'action'] 
WHERE x IN p.index) RETURN p; 

我得到的錯誤

Type mismatch: p already defined with 
conflicting type Node (expected Collection<Any>)  

我怎樣才能讓這個查詢工作,這樣我就可以了,在這種情況下,找到所有產品tagges與兩個「遊戲」和「動作」?

此外,這種查詢的性能如何,這是一個很好的方式去做這種搜索,或者它可能會變慢?

回答

1

不知道爲什麼它不與當前版本的工作,但你可以做到這一點,

MATCH (p:Product)-[:has_tag]->(tag:Tag) 
WHERE length(filter(x IN p.index WHERE x in ['game', 'action'])) = 2 
RETURN p 

假設有沒有重複的標籤索引