Neo4j 2.0中的标签搜索

Neo4j 2.0中的标签搜索,neo4j,cypher,Neo4j,Cypher,在我的数据库中,我有标记的产品。每个产品都有一个名为index的数组属性,该属性包含标记中的所有单词。在上一次更新Neo4j之前,我可以使用以下不再有效的查询进行查询,我想它可能会被弃用 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

在我的数据库中,我有标记的产品。每个产品都有一个名为index的数组属性,该属性包含标记中的所有单词。在上一次更新Neo4j之前,我可以使用以下不再有效的查询进行查询,我想它可能会被弃用

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>)     
类型不匹配:p已用定义
冲突类型节点(应为集合)
我如何才能使这个查询工作,以便在这种情况下,我可以找到所有带有“游戏”和“动作”的产品标签


这类查询的性能如何?这是进行此类搜索的一种好方法,还是会变慢?

不确定为什么在当前版本中不起作用,但您可以这样做

MATCH (p:Product)-[:has_tag]->(tag:Tag)
WHERE length(filter(x IN p.index WHERE x in ['game', 'action'])) = 2
RETURN p
假设索引中没有重复的标记