在Neo4j中搜索

时间:2013-07-07 08:09:07

标签: neo4j neo4jclient

我的网络应用程序有用户和Coworker的关系。我想搜索与特定用户有Coworker关系的用户。我使用了这个查询:

var query = _client
                .Cypher
                .Start(new
                           {
                               //user = Node.ByIndexLookup(IndexHelper.USER_INDEX, "Email", email)

                           }
                ).Match(String.Format("user-[:{0}]-(coworkers)", CoWorker.TypeKey))                
                .Where((User coworkers) => coworkers.Email.Contains(term))
                .Return<Node<User>>("coworkers");

但它会在

处抛出无效参数

Where((User coworkers) => coworkers.Email.Contains(term))

如何用条款替换此条件来搜索同事?谢谢你的阅读。

1 个答案:

答案 0 :(得分:1)

Cypher实际上并不支持这样的包含运算符,因此异常表明没有.NET等价物。

你能做的就是使用正则表达式:

WHERE coworkers.Email =~ ".*something.*"

但是这会非常低效,因为你会在每个节点上运行一个正则表达式。