2017-10-17 1 views
0

내 응용 프로그램에서 사용자가 일부 단어가있는 광고를 검색 할 수있게하고 싶습니다. 그래서 나는 목록에있는 모든 단어를 포함하는 모든 광고를 얻고 싶습니다. 예를 들어 그가 혼다 시빅 2017을 검색하면 주문없이이 단어가 포함 된 모든 광고를 받고 싶습니다. 은 2001 년 시빅 혼다, 혼다 2001 시민은입니다. 지금까지 나는 봄의 데이터 저장소로 시도 : 인터페이스 :search 문자열 스프링 데이터 목록 MySQL

Page<Annonce> findByTitreContaining(String titres ,Pageable page); 

컨트롤러 :

String title; 
annonces=annoncedao.findByTitreIn(title, page); 

는하지만이 사람이 나에게 검색이다

답변

1

A가 들어있는 문자열을 포함하는 광고 만 제공 검색어 매개 변수는 %으로 묶입니다. 귀하의 경우에는 %Honda civic 2017%을 검색하십시오. 쿼리 문자열 앞뒤의 모든 내용은 아무거나 될 수도 있지만 정확히 어디서나 Honda civic 2017과 일치해야합니다.

사용 사례는 전체 텍스트 검색입니다. 주로 NoSql 데이터베이스로 수행됩니다. Spring은 그것들 중 일부를 즉시 제공합니다. 예 : Apache Solr 또는 Elasticsearch.

사용 사례에 대한 임시 해결책은 쿼리 문자열을 분할하고 분리 된 모든 문자열에 대한 검색을 포함하는 것입니다. 그런 다음 결과를 반환 객체로 다시 설정합니다. 그러나 나는 이것이 더 많은 해결 방법이라고 말했다.

아직 최대 절전 모드 검색을 사용하지 않았습니다. 그러니 알맞지는 모르지만 도움이되는지는 모르겠다. Add full-text search to your application with Hibernate Search