【发布时间】:2012-12-29 23:03:04
【问题描述】:
我正在尝试从 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;
...我得到空值,好像价格试图从字面上匹配“*”而不是匹配任何东西,就像通配符一样。例如,当我将变量 price 替换为 0 时,一切都很好。
我不太明白,因为this 建议我可以这样说:
WHERE follower.name =~ 'S.*'
并且 "*" 作为 count(*) 和 node:indexes("*:*") 的通配符
如果有什么不同的话,我正在使用 python 和 py2neo。
【问题讨论】:
标签: wildcard neo4j cypher py2neo