2010-07-20 3 views
0

PHP/MySQL의 티켓 시스템에서 작업합니다. 우리는 부울 모드에서 mysql FTS를 구현하여 검색 기능을 사용자에게 제공합니다. 사용자가 검색 문자열을 입력하고 문제 목록을 제시합니다. (ID, 제목, 설명)
그것은 FTS가 지수 (제목, 설명)MySQL FTS 구현

issue_comments 테이블 - - (

문제 테이블 : 아래

샘플 데이터베이스 스키마입니다 id, issue_id, 의견)
fts index (의견)

각 문제마다 여러 의견이있을 수 있습니다. 그래서 문제의 테이블의 행에 해당하는 issue_comments 테이블의 여러 행이있을 수

말에 사용자가 입력하는 검색 문자열 -

PHP 스크립트는 개별 단어의 문자열을 나누기 알파 베타, 추가는 '을 + '을 입력하고 아래 쿼리를 실행합니다.

select id as issue_id from issues where match(title, description) against ('+alpha +beta' in boolean mode) union select id as issue_id from issues inner join issue_comments on issue.id=issue_comments.issue_id where match(comment) against ('+alpha +beta' in boolean mode) 

모든 문제
이 (제목, 설명)
의 알파와 베타가 있거나 문제의 코멘트 하나에 모두 알파와 베타를 가지고 검색합니다.

그러나이 설정에는 제한이 있습니다.
문제 제목에 알파가 있고 설명에 베타가있는 경우 문제가 검색 결과에 나타나기를 원합니다. 위의 설정에서는이 작업을 수행 할 수 없습니다.
어떻게해야합니까?

답변

0

나는 아직 현실에서이 시도하지 않은,하지만 여러 열을 지정하는 것이 아니라 부울 모드에서 작동한다 :

match (title,comment) against... 

이의 명시 적 언급이 없지만, docs 이야기에 대한 열이 아닌 검색됩니다.