2009-07-01 2 views
1

나는 내가 원했던 결과를주는 것처럼 보이지 않는 아주 간단한 쿼리를 가지고 있습니다. 나는 사용자가 전체 텍스트 검색을 사용하여 이름, 주소 또는 도시별로 레스토랑을 검색 할 수 있도록 노력하고 있습니다.MySQL의 전체 텍스트 검색이 예상과 일치하지 않습니다.

SELECT ESTAB_NAME, ESTAB_ADDRESS, ESTAB_CITY 
FROM restaurant_restaurants rr 
WHERE 
    MATCH (rr.ESTAB_NAME, rr.ESTAB_ADDRESS, rr.ESTAB_CITY) 
    AGAINST ('*new* *hua*' IN BOOLEAN MODE) 
LIMIT 0, 500 

새로운 후아힌 테이블 내에 존재하는 레스토랑 :

여기 내 쿼리입니다. 그러나 'tingho'에 대한 검색을 수행 할 때 기대했던 결과를 얻었습니다.

무슨 일이 일어나고 있는지 알 수있는 사람이 있습니까? MySQL 버전 5.0.41에서 MyISAM 스토리지 엔진을 사용하고 있습니다.

+0

MyISMAP이 아니라 MyISAM을 의미합니다. –

답변

1

마이클이 맞다고 생각하지만, 실제로 검색중인 제목에없는 한 ***** 문자를 제거하려고합니다. 일치 일치는 "모두 일치"유형의 매개 변수를 요구하지 않습니다.

+0

그는 부울 모드를 사용하므로 *는 임의의 문자 시퀀스에 대해 와일드 카드처럼 작동합니다. 그러나, 어쨌든 사용하지 않는 것이 좋습니다. 일반적으로 검색하는 동안 기대할 수있는 행동이 아니기 때문에 (적어도 나는하지 않을 것입니다 ...) –

0

내 생각 엔 "신제품"은 Mysql Default Stop Word입니다. 정지 단어 목록을 변경하고 레스토랑을 되 찾는 방법을 보려면 Michael Madsen의 두 번째 링크를 참조하십시오.

+0

부울 모드는 사용할 때와 같이 사용하면 안됩니다 문서에 첨부 된 와일드 카드, 심지어 그렇게해도 Hua로 인해 일치가 있어야합니다. –

관련 문제