Neo4jのクエリパラメータから検索を作成しようとしていますが、ワイルドカードの識別に問題があるようです。「*」は、ノード属性のワイルドカードでは機能しません。
私が持っているコードは以下の通りです:
price = "*" # by default
query = 'start b = product("*:*") WHERE has(b.public) and (b.public = 1) and (b.price = %d) RETURN ID(b) SKIP %d LIMIT %d;' % (price, skip, limit)
cypher.execute(cdb,query)[0]
残念ながら、クエリを実行したり、コンソールに切り替えたりすると...
start b = product("*:*") WHERE has(b.public) and (b.public = 1) and (b.price = "*") RETURN ID(b) SKIP 0 LIMIT 10;
...ワイルドカード文字のように、価格が何かに一致するのではなく、文字通り「*」に一致しようとしているように、null値を取得します。price
たとえば、変数を0に置き換えると、すべて問題ありません。
これは私が次のようなことを言うことができることを示唆しているので、私は完全には理解していません:
WHERE follower.name =~ 'S.*'
「*」は、count(*)とnode:indexes( "*:*")の両方のワイルドカードとして機能します。
違いがあれば、Pythonとpy2neoを使用しています。