Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j cypher 2.0:使用基于标签的索引搜索一组节点_Neo4j_Cypher - Fatal编程技术网

Neo4j cypher 2.0:使用基于标签的索引搜索一组节点

Neo4j cypher 2.0:使用基于标签的索引搜索一组节点,neo4j,cypher,Neo4j,Cypher,我有用户和组。 我有一个索引n:组(名称) 我想搜索属于一组组的所有用户:[“gr1”、“gr2”、“gr3”] 他们属于哪些其他群体 因此,我有以下疑问: 查询: (用“=”代替“in”,我没有得到任何错误) 我正在使用neo4j enterprise 2.0.1。测试结果是在neo4j浏览器上运行的。当您在模式中指定attrib如(gr:Group{name:“gr1”})中所示时,或者调用其中gr.name=“gr1”时,将引用索引。在可能有多个attrib值的情况下,可以使用或子句 MA

我有
用户
。 我有一个索引n:组(名称)

我想搜索属于一组组的所有用户:[“gr1”、“gr2”、“gr3”]

他们属于哪些其他群体

因此,我有以下疑问: 查询:

(用“=”代替“in”,我没有得到任何错误)


我正在使用neo4j enterprise 2.0.1。测试结果是在neo4j浏览器上运行的。

当您在模式中指定attrib如
(gr:Group{name:“gr1”})中所示时,或者调用
其中gr.name=“gr1”
时,将引用索引。在可能有多个attrib值的情况下,可以使用
子句

MATCH (gr:Group) <--(us:User)--(gr2:Group)
WHERE gr.name="gr1" OR gr.name="gr2"
return distinct gr2

MATCH(gr:Group)我需要使用参数进行查询,这意味着我要将组名数组传递给查询。在neo 1.9中,我至少可以从一组节点(由参数给出)开始。在2.0中没有办法做到这一点吗?(我可以通过向or语句中添加更多可能的值来动态创建您提到的字符串,但这有点遗漏了要点。)不幸的是,目前还不可能做到这一点。您可以在{names}
中使用
gr.name,但这不会使用索引,只有在只有几个:组节点时才有意义。
中的
尚不支持对标签属性进行索引查找,对此表示抱歉。
MATCH (gr:Group) <--(us:User)--(gr2:Group)
WHERE gr.name = "gr1"
return distinct gr2
MATCH (gr:Group) <--(us:User)--(gr2:Group)
WHERE gr.name in ["gr1"]
return distinct gr2
MATCH (gr:Group) <--(us:User)--(gr2:Group)
using index gr:Group(name)
WHERE gr.name in ["gr1"]
return distinct gr2
Cannot use index hint in this context. The label and property comparison must be specified on a non-optional node
Label: `Group`
Property name: `name`
MATCH (gr:Group) <--(us:User)--(gr2:Group)
WHERE gr.name="gr1" OR gr.name="gr2"
return distinct gr2