1

graphDbノードにプロパティがあるNeo4jデータベースがあります'label''my_nodes'ノードプロパティ「label」の値にインデックスを付けるキー「label」を持つLuceneインデックスがあります。ここで、可能な値のリストから値に等しいプロパティ'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に1つの値がある場合は機能します。そして、neo4jチュートリアルは、この問題に関する多くの資料を提供していません。

もう一度、Neo4jにPythonバインディングを使用しています。

4

1 に答える 1

1

パラメータはインデックスのクエリ部分全体で機能しているため、これは次のようになります。

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

クライアントコードでクエリを作成し、それを1つのパラメータとしてCypherに渡します。

于 2012-10-10T08:29:24.253 に答える