2009-04-16 4 views
0

mysql 데이터베이스에서 전체 텍스트 검색을 얻으려고합니다. 문제는 일부 필드가 null로 남을 수 있다는 것입니다. 예를 들어 나는 열null 열이있는 mysql 전체 텍스트 검색

StreetLine1

StreetLine2

시와의 기본 주소 테이블이

우편

이제 이들 중 어느 것도 것 없다 t의 어느 하나가 요구된다. 밑단은 null 일 수 있습니다. 내가 내 전체 텍스트 검색을 수행 할 때 필드의 아무도 그것을 잘 작동 null이없는 경우

SELECT *, 
(MATCH (StreetLine1, StreetLine2, City, State, Zip) 
AGAINST ('+{0}*' IN BOOLEAN MODE)) AS Relevance 
FROM Address 
HAVING Relevance > 0 
Order By Relevance Desc 

{0} 단지 자리

입니다. 그러나 둘 중 하나가 null이면 행은 반환되지 않습니다.

은 내가했다, 그래서 난 그냥 뷰를 생성한다 생각하지만 나는 그보기

모든 제안에 대한 전체 텍스트 인덱스를 추가하는 방법을 알아낼 수 있을까?

답변

1

전체 텍스트 검색을 수행하기 위해이 필드는 너무 작습니다. 또한 일반적으로 InnoDb보다 적합하지 않은 MyIsam 테이블을 만들어야합니다.

여기에 LIKE 연산자를 사용하고 싶습니다.

0

당신이 당신의 my.cnf[mysqld]에서,이 있는지 확인하십시오, • 'LN'와 같은 거리 숫자 나 약어 등 같은 것들을 일치 시키려면 기본 4보다 낮은 설정 :

ft_min_word_len=2 

내가 가진를 사용자가 2 문자 상태 약어 등을 검색하고자하는 지리 데이터에이 정보를 사용했습니다. 짧은 단어가 색인에 없다는 것을 처음 알 때 혼란 스럽습니다. 물론 ft_min_word_len 값을 변경 한 후에는 인덱스를 다시 작성해야합니다.