Подход Раджа является правильным, если здесь присутствует только один тип отношений.
Однако вы сказали, что «отношение после ИЛИ может быть другим», поэтому вы ищете либо один тип отношения, соответствующий определенному предикату, либодругой тип с другим предикатом.
Вы можете использовать здесь понимание шаблона , чтобы собрать здесь фрагменты шаблона, и это позволит вам ввести новые переменные в область действия понимания.
MATCH (user)
WHERE ID(user) = 999
MATCH (user)<-[:`post`]-(p:`Post`)
WITH user, p, [(p)-[r:`review`]->(w:Review) WHERE r.score IN [4,5] AND w.category='FB' | w] as midFB_Review, [(p)-[r:`review`]->(w:Review) WHERE r.score IN [6,8] AND w.category='INSTA' | w] as highINSTA_Review
WITH user, p
WHERE size(midFB_Review) + size(highINSTA_Review) > 0
RETURN p
Обратите внимание, что ваш тип отношений (или даже весь шаблон, которому вы соответствуете) может отличаться в отдельных представлениях шаблонов.