Я использую Cineasts Movies & Actors (12.3MB) dataset, и я хочу получить путь от Кевина Бэкона и всех актеров США, с которыми он играл, которые также играли в драматическом фильме. Так что я сделал это Cypher запроса, который не возвращает строки:Неправильное совпадение с использованием регулярного выражения в запросах cypher
START KB=node(759)
MATCH (KB)-->(m1)<--(p)-->(m2)
WHERE HAS(p.birthplace) AND p.birthplace =~ ".*(USA|United States)" AND m2.genre = "Drama"
RETURN m1, p, m2
Однако если избавиться от регулярного выражения (p.birthplace = "USA"
), он возвращает один результат. Что не так? Первоначальный запрос должен возвращать хотя бы одну строку. Я использую Neo4j 1.9.2.
Вы также должны использовать отношения-тип как '(KB) - [: ACTED_IN] -> (m1) <- [: ACTED_IN] - (p) - [: ACTED_IN] -> (m2)' и попытаться не использовать идентификаторы узлов, а скорее индексные запросы найти узлы. –