получить доступ к полнотекстовым индексом по findAllByQuery() метод хранилища, он отлично работает, но я не могу передать нумерации страниц Params, поэтому я пытаюсь Cypher запрос, который может использовать LIMIT ниже мои Testings:Spring Data Neo4j - Индекс Полный текст в Cypher запросе
Случай 1 - работает отлично, но жестко прописывать
@Query("START n=node:searchName('name:*test*') return n")
EndResult<SomeGraphObject> findByName()
Случай 2 (никогда не работайте), дать термин = "* тест *", бросить исключение
@Query("START n=node:searchName('name:{0}') return n")
EndResult<SomeGraphObject> findByName(String term)
Случай 3 (Частично работает) - работает хорошо, когда дают luceneExpression = "Имя: * тест *", но не работает, когда дайте luceneExpression = "name: * test test *", я имею в виду, что не работает, когда строка запроса содержит пробел.
@Query("START n=node:searchName({0}) return n")
EndResult<SomeGraphObject> findByName(String luceneExpression)
Другой вопрос, когда я использую findAllByQuery() метод хранилища, индекс searchName будет создан, когда первый раз создать или запрос. Но когда я использую запрос Cypher без создания индекса searchName, он выдаст «Индекс searchName не существует».
Любая помощь будет принята с благодарностью.
SomeGraphObject.java
@NodeEntity
public class SomeGraphObject {
@GraphId Long id;
@Indexed(indexName="searchName", indexType = IndexType.FULLTEXT)
String name;
}
http://stackoverflow.com/questions/16026027/neo4j-fulltext-indices-and-auto-indexing-in-cypher – Evgenii
Hi Eugeny, спасибо за ответ, но эта ссылка ответит только на случай 1, который уже работает , проблема заключается в жестком кодировании. – gozizibj
Можете ли вы попробовать 'luceneExpression =" имя: \ '* test test * \' ''? – Evgenii