2015-10-19 4 views
0

Я вижу странную проблему с настройкой SDN (возможно). Мой высчитывать запрос из консоли браузера Neo4j возвращает 2 узла -Запрос SDN приносит дополнительные записи

MATCH (bk:Book) WHERE bk.bookTitle =~ '(?i).*robert.*' OR bk.authors =~ '(?i).*robert.*' return bk; 

выше согласно моим ожиданиям.

Однако, когда я использую тот же запрос в аннотации запроса одного из методов поиска моего репозитория, SDN имеет тенденцию извлекать все узлы, находящиеся в репозитории, - Вот как мой метод в репозитории i/f смотрит -

@Query("MATCH (bk:Book) WHERE bk.bookTitle =~ '(?i).*{0}.*' OR bk.authors =~ '(?i).*{0}.*' return bk;") 

... 
    public Iterable<Book> searchBooksByProfileData(String keyword); 
.... 

Немного больше деталей - 1. Я использую SDN - 3.4.0 релиз версии и мой сервер v2.1.6 2. Мой тестовый случай, кажется, делают SDN огонь правильный запрос, как я проверил мой журналы.

Просто интересно, как это может произойти - я что-то упустил, или REST i/f с последнего сервера не интерпретирует запрос от старого SDN-клиента правильно?

ответ

0

Эта часть

'(?i).*{0}.*' 

берется как регулярное выражение, где {0} является количество appearences. Вам нужно пройти в целом регулярное выражение в параметре:

WHERE bk.bookTitle =~ {0} 

Где {0} будет иметь значение "(?i).*robert.*";

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