2010-02-10 4 views
2

저는 PHP, mySQL 및 PDO를 사용하여 상대적으로 간결한 검색 엔진을 만들고자합니다. 나는 책 데이터베이스를 가지고 있는데 두 필드에 대해 검색을 시도하고있다. 여기에 지금까지 무엇을 가지고 :관련성이있는 PHP PDO 검색 엔진

"SELECT id, title, author, isbn, MATCH(title, isbn) AGAINST (:term) AS score FROM %sbooks WHERE MATCH(title, isbn) AGAINST (:term) AND is_active = 'y' ORDER BY score DESC LIMIT 0,25"); 
$sth->execute(array(':term'=>'+'.$keywords)); 

$ 키워드가 검색 필드에서 문자열, 그래서 '책 일종의'같은 수 있습니다.

나는 어떤 단어를 걸러 내고 싶지 않거나 너무 좋아 보이지 않지만, 위의 쿼리는 부울 모드로 넣어도 많은 결과를 무시합니다.

또한 데이터베이스에 두 권의 책 '책 번호 1'과 '책 번호 2'가 있습니다. '책 번호 2'를 검색하면 '책 번호 1'이 더 높게 책정됩니다. 가장 큰 문제는 그러나, 검색의 많은 단지 결과가 없습니다 :(

어쨌든 내가 잘못 여기서 뭐하는 거지 제안 도와 주 시겠어요?

답변

2

이하 세 글자가 무시되고있는 모든 단어를. 그래서으로 반환하는 것입니다 . 제목의 끝에 1 & 2 당신은이 설정을 변경할 수 있습니다 무시됩니다.이 MySQL의 관점에서 단어 아니므로 ISBN에 대한

http://dev.mysql.com/doc/refman/5.1/en/fulltext-fine-tuning.html

매칭도 아무 소용이입니다

당신이 원한다면 자신의 검색 엔진을 만들어야한다고 생각합니다.

+0

PHP를 통해 쿼리 단위로 최소 단어를 변경할 수 있습니까? MySQL 5가 있지만 불행히도 설정 파일에 액세스 할 수 없습니다. – Hanpan

+0

아니요, 쿼리마다 불가능합니다. 서버 당. –