Я только начал играть с Spring Data Rest и хотел разоблачить искатель для поля, которое было проиндексировано в MongoDB. У меня есть следующее определение индекса:Можно ли использовать текстовый поиск MongoDB с Spring Data REST?
@TextIndexed
private String title;
и подтверждено, что индекс создан. Я создал метод поиска на хранилище определения:
public interface ContentRespository extends MongoRepository<Content, String> {
public Page<Content> findByTitle(@Param("title") TextCriteria title, @Param("pageable") Pageable pageable);
}
Называя URL REST API:
http://localhost:8080/contents/search/findByTitle?title=test
Я получаю следующее сообщение об ошибке:
2017-01-19 13:16:41.831 ERROR 16705 --- [nio-8080-exec-9] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.data.repository.support.QueryMethodParameterConversionException: Failed to convert test into org.springframework.data.mongodb.core.query.TextCriteria!] with root cause
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [@org.springframework.data.repository.query.Param org.springframework.data.mongodb.core.query.TextCriteria]
at org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound(GenericConversionService.java:324) ~[spring-core-4.3.4.RELEASE.jar:4.3.4.RELEASE]
....
Что бы правильно способ вызова REST API? Я не могу найти документацию об этом. Или как можно было бы написать конвертер для TextCriteria?
Да, есть ли какой-нибудь пример, как написать такой конвертер? –
Несомненно. Google поможет найти его. Но обернуть содержимое репозитория каким-то классом было бы проще –
уверен, я могу это сделать Google, но мой вопрос был больше о стандартном способе доступа к полю _TextIndexed_ через REST API. Другие методы поиска для полей _Indexed_ работают из коробки. Написание конвертера было бы вторым вариантом: –