2014-10-09 2 views
1

У меня есть два NodeEntities: Speaker and Talks. Динамик имеет набор Теперь я создаю SpeakerRepository расширяет GraphRepository и все работает. Но мне не удается создать Query для извлечения всех динамиков, которые ведут переговоры с названиями, в которых содержатся конкретные слова. Например, я хочу, чтобы все ораторы говорили о весне. метода будет: Set findAllSpeakerWithTalksLike (String partOfTalkTitle) Можете ли вы объяснить, что должно быть содержанием @Query аннотации выше этого методаВесенние данные Neo4J @Query

ответ

0

Попробуйте это, предполагая, что ваш Talk имеет title свойство и Speaker имеет talks связанных с сборкой.

Set<Speaker> findAllSpeakerWithTalksTitleContaining(String partOfTalkTitle) 

шифровальщик запрос будет, это не будет очень быстро на больших наборы данных B/C нет индекса его поддержки.

MATCH (t:Talk)<-[:TALK]-(s:Speaker) WHERE t.title = ".*partOfTalkTitle.*" 
RETURN s 

Вы можете аннотировать @Indexed(type=FULLTEXT) String title;, то он будет использовать полнотекстовый индекс наследие Lucene для поиска.

+0

Я пробовал это и ... Ошибка выполнения инструкции MATCH (t: Talk) <- [: TALK] - (s: Speaker) WHERE t.title =. * PartOfTalkTitle. * RETURN s Недопустимый вход '*': Ожидаемые цифры (строка 1, столбец 54) «MATCH (t: Talk) <- [: TALK] - (s: Speaker) WHERE t.title =. * partOfTalkTitle. * RETURN s" –

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