Neo4j中的搜索

Neo4j中的搜索,neo4j,neo4jclient,Neo4j,Neo4jclient,我的web应用程序具有用户和同事关系。我想搜索与特定用户有同事关系的用户。我使用了这个查询: var query = _client .Cypher .Start(new { //user = Node.ByIndexLookup(IndexHelper.USER_INDEX, "Email", email)

我的web应用程序具有用户和同事关系。我想搜索与特定用户有同事关系的用户。我使用了这个查询:

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");
var查询=\u客户端
塞弗先生
.开始(新)
{
//user=Node.ByIndexLookup(IndexHelper.user\u索引,“Email”,Email)
}
).Match(String.Format(“user-[:{0}]-(coworkers)”,CoWorker.TypeKey))
.Where((用户同事)=>coworkers.Email.Contains(术语))
.返回(“同事”);
但它会抛出无效的参数

Where((用户同事)=>coworkers.Email.Contains(术语))


如何用术语替换此条件以搜索同事?感谢阅读。

Cypher实际上不支持这样的contains操作符,因此为什么异常会说没有.NET等价物

最接近的方法是使用正则表达式:

WHERE coworkers.Email =~ ".*something.*"
但这将是非常低效的,因为您将在每个节点上运行一个正则表达式