0

저렴한 비용으로 데이터베이스에서 데이터를 검색 할 학교 라이브러리를 개발하기위한 검색 쿼리를 만들려고합니다. 내 테이블 안에는 callNumber, 작성자, 제목이 있습니다. 나는 callNumber, 저자 및 제목에서 검색하고 싶습니다.검색시 쿼리 최적화

$sqlCommand = "SELECT book_id, author, title 
       FROM book 
       WHERE MATCH(callNumber, author, title) 
       AGAINST('$search' IN BOOLEAN MODE)"; 

나는 위의 쿼리를 사용했으며 반환 데이터는 신뢰할 수 없습니다. 이 쿼리를 최적화하기위한 제안이나 권장 사항입니다. 감사합니다.

+1

적절한 색인을 만들었습니까? –

+0

"신뢰할 수 없다"는 것은 무엇을 의미합니까? 잘못된 결과가 나왔다는 뜻인가요? 제목은 문제가 성능이라고 암시합니다. – Barmar

+0

나는 결과를 보려고 할 때 결과의 첫 번째 줄에 올바른 결과를 얻지 못한다. – user2734559

답변

0

MATCH(...) AGAINST의 결과는 기본적으로 관련성이 높은 순서대로 나열되어 있습니다.

가 일치의 관련성을 나열하려면 다음 SQL을 시도해보십시오

SELECT book_id, author, title, MATCH(callNumber, author, title) 
       AGAINST('$search' IN BOOLEAN MODE) as relevance 
       FROM book 
       WHERE MATCH(callNumber, author, title) 
       AGAINST('$search' IN BOOLEAN MODE) 

를 관련성 번호는 당신이 당신의 테스트 데이터가 관련이 있는지 여부를 고려해야하지 당신이 예상하는 경우. 다음과 같은 몇 가지주의 사항이 있습니다.

  • 짧은 단어는 무시됩니다 (컷 - 오프는 4 자로 간주됩니다).

  • 특정 단어는 무시됩니다 (기타 등).

  • 일반적인 단어는

내가 유용 the following page을 발견 (적어도 절반 기록에 존재하는) 무시됩니다.