使用Neo4jclient使用正则表达式搜索属性

时间:2013-03-07 21:05:28

标签: cypher neo4jclient

我有一个有效的密码查询,但无法让它在Neo4jclient中运行。

我的密码查询是

start n=node(*) where has(n.Name) and n.Name =~ 'X.*' return n;

返回所有具有以X开头的Name属性的节点 我故意不在这里使用索引或关系。

我的第一次幼稚尝试(甚至不使用我计划使用的正则表达式)在res.Results上以超时(!)失败

var res = _client.RootNode
    .StartCypher("n")
    .Where<Meeting>(m => m.Name == "X")
    .Return<Meeting>("m");

1 个答案:

答案 0 :(得分:4)

尝试:

var query = _client.Cypher
    .Start("n", graphClient.RootNode)
    .Where("has(n.Name)")
    .And()
    .Where("n.Name =~ 'X.*'")
    .Return<Meeting>("n");

这适用于我的机器,你会得到如下结果:

var results = query.Results;

修改 我想我已经意识到为什么你的问题,在开始时,你放StartCypher("n")然后使用m而不是n。因此Return<Meeting>("m")应为Return<Meeting>("n")