Neo4j python绑定:查询一组值的节点索引

时间:2012-10-09 21:44:41

标签: lucene neo4j cypher neo4j.py

我有一个Neo4j数据库graphDb,其中节点有一个属性'label'。我有一个Lucene索引'my_nodes',带有键'label',用于索引node属性'label'的值。现在,我想检索属性“label”等于可能值列表labellist中的值的节点。为实现这一目标,我通过以下方式编写了Cypher查询:

cypherQ =       """START n=node:my_nodes('""" 
                   +' OR '.join(['label:'+str(i) for i in labellist]) + """')
                   RETURN n"""
result = graphDb.query(cypherQ)

工作正常,但我想知道是否有办法编写参数化查询无论如何?

我尝试过类似的事情:

cypherQ =       """START n=node:my_nodes('label:{params}')
                   RETURN n"""
result = graphDb.query(cypherQ, params = labellist)

但这肯定不起作用,但如果labellist中有一个值可行。而neo4j教程在这个问题上没有提供太多资料。

我再次使用Neo4j的python绑定。

1 个答案:

答案 0 :(得分:1)

该参数适用于索引的整个查询部分,因此这将是

cypherQ =       """START n=node:my_nodes({queryParam})
               RETURN n"""

并在客户端代码中构造查询,并将其作为一个参数传递给Cypher。