2012-03-02 3 views
0

이상한 문제가 있습니다. MySQL 5.1과 Fulltable-Index 테이블을 사용하고 있습니다. mysql 설정에서 ft_min_word_len은 2로 설정된다. (적어도 2 문자 이상의 길이의 단어는 색인된다.)MySQL : 일치하지 않는 결과가 모두 표시되고 있습니다.

아래의 쿼리는 단순화되었지만 원래 쿼리와 동일한 효과가 있습니다. 내가 검색 할 때

는 : - "인터내셔널", "Internship.org"와 같은

SELECT company FROM my_table WHERE MATCH (company) AGAINST ('intern*' IN BOOLEAN MODE) 

나는 그것의 이름에 "INTERNAT"로 회사를 얻을. 테이블 "여행 법무부 &"에 항목이 있지만, 나는 어떤 결과를 얻을하지 않습니다

SELECT company FROM my_table WHERE MATCH (company) AGAINST ('just*' IN BOOLEAN MODE) 

:

그러나 나는 검색 할 때. 내가 검색 할 때

는하지만 :

SELECT company FROM my_table WHERE MATCH (company) AGAINST ('travelling*' IN BOOLEAN MODE) 

나는 -Entry/올바른 결과 "정의 &이 여행"얻는다.

MATCH-AGAINST 대신 LIKE %just%으로 검색하면 정확한 결과를 얻을 수 있습니다.

누구나 아이디어가 있는데 왜 두 번째 언급 된 쿼리에서 올바른 결과를 얻지 못합니까?

+0

당신 유무 :
ft_stopword_file = ''

자세한 내용은 아래의 링크에서 찾을 수 있습니다 다음 줄을 추가하여 목록을 비활성화 문제 해결의 my.cnf하기 '그냥'이 예약어가 아닌지 확인 했습니까? – BenOfTheNorth

+0

예, http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html의 목록에서 찾을 수 없습니다. – Stefan

답변

관련 문제