2013-07-07 3 views
0

У моего веб-приложения есть пользователи и отношения Coworker. Я хочу искать пользователей, имеющих отношения Coworker с конкретным пользователем. Я использовал этот запрос:Поиск в Neo4j

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

Cypher фактически не поддерживает такой оператор, как это, поэтому исключение говорит о том, что нет эквивалента .NET.

Ближайшие вы могли бы сделать, это использовать регулярные выражения:

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

Но это было бы ужасно неэффективно, потому что вы бы запустить регулярное выражение через каждый узел.

Смежные вопросы