Написал поиск для сайта на Spring. Поиск ищет статью по её названию, но он ищет только по точному названию а мне нужно что бы он находил её даже если есть слово введенное в поиске в названии статьи. К примеру если у меня есть статья "Почему земля круглая?", сейчас он найдет эту статью, если в поиск вписать "Почему земля круглая?", но если вписать просто слово "Почему" у меня ничего не найдет. Подскажите пожалуйста как мне сделать, что бы находило по слову в названии.
Мой репозиторий
public interface PostRepository extends JpaRepository<Post, Long> {
Iterable<Post> findByTitle(String title) throws Exception;
}
Мой сервис написанный под этот репозиторий (кстати подскажите нормально что я его сделал абстрактным что бы реализовать в нем только findByTitle ?)
@Service
public abstract class PostService implements PostRepository {
public PostRepository postRepository;
@Override
public Iterable<Post> findByTitle(String title) throws Exception {
Iterable<Post> searchResult = postRepository.findByTitle(title);
if(searchResult != null){
throw new Exception("Пост не найден");
}
return searchResult;
}
}
Мой контроллер
@Controller
public class SearchController {
@Autowired
PostRepository postRepository;
@GetMapping("/search")
public String searchPage(){
return "/search";
}
@PostMapping("search")
public String searchPage(@RequestParam("searchString") String searchString, Model model){
if(searchString != null){
try {
Iterable<Post> searchResult = postRepository.findByTitle(searchString);
model.addAttribute("searchResult", searchResult);
} catch (Exception e) {
e.printStackTrace();
}
}
return "search";
}
}