Neo4j есть ли более эффективный способ написания нескольких где-содержит? - PullRequest
1 голос
/ 17 октября 2019

Я пишу запрос, и у меня есть несколько провайдеров электронной почты, по которым я хочу выполнить поиск. Есть ли более эффективный способ написать мое предложение where, которое просто содержит contains?

match (s:Sender)-[]-(r:Recipient)
where s.domain contains "gmail" OR s.domain contains "yahoo" OR s.domain contains "hotmail" OR s.domain contains "aol" 
return s,r

1 Ответ

1 голос
/ 17 октября 2019

Вы можете сделать что-то вроде этого ...

Создать список фрагментов домена, а затем посмотреть, содержится ли какой-либо из них в скаляре на вашем Sender узле.

MATCH (s:Sender)-[]-(r:Recipient)
WHERE [dom_frag in ["gmail", "yahoo", "hotmail", "aol"] WHERE s.domain contains dom_frag]
RETURN s,r
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...