2014-09-24 2 views
0

기사 제목을 저장하는 열이있는 테이블이 있습니다. 사용자가 "독일 자동차 테스트"와 같은 검색어를 입력하고 있습니다. 검색은이 있지만 작동SQL 텍스트 검색 결과의 품질 향상

Select * from articles where title like '%Germany%' or title like '%car%' or title like '%testing%'; 

(PARAMS의 수에 따라)과 같은 SQL 등을 사용하여 수행하고,이처럼 보이는, 결과는 사용자 만족하지 않은, 너무 많은 결과가 반환되는 결과가 없습니다 일치하는 단어의 수에 따라 정렬됩니다 (예 : 3 개 용어가 모두있는 첫 번째 결과 표시).

오전 beckend에 처리를 방지하기 위해 찾고 있지만 너무 비싼 시간 (Java 및 SQL 사용하여 MySQL을 - - EntityManager를) 처리되지 않은 경우 나는 그것을 고려할 것입니다 내 검색의 품질을 향상시키기 위해

이 거기에 간단한 방법을? 테이블에 약 10.000 개의 레코드가 있습니다.

답변

0

저는 MySql 전문가는 아니지만 전체 텍스트 검색 기능이 필요할 수도 있습니다. 좋은 소식은 MySql이이 기능을 지원한다는 것입니다. article 또는 tutorial을 참조하십시오. 전체 텍스트 검색을 사용하려면 주어진 열에서 전체 텍스트 색인을 만들어야합니다. 이 인덱스를 기반으로하는 쿼리는 LIKE 연산자를 사용하는 것보다 빠릅니다. 또 다른 장점은 전체 텍스트 검색 쿼리가 가장 관련성 높은 검색 결과를 반환한다는 것입니다. 즉, 흥미있는 행만 사용자에게 보여줄 수 있습니다.