2013-10-18 84 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 

假设有没有重复的标签索引