2011-11-15 2 views
0

두 열에 대해 FULLTEXT 검색을 수행하려고합니다.FULLTEXT 검색이 두 번째 열에서 작동하지 않습니다.

|   name   |  also_match  | 
----------------------------------------------------- 
| Information Technology | IT I.T.   | 
| Mathematics    |      | 
| English     |      | 
| Religious Studies  | RS R.S. RE R.E. | 

스키마 정보 : 첫 번째 열은 같은 주제 이름, 두 번째 열 별칭 보유

이러한 열은 모두 VARCHAR(100)하고 나는 FULLTEXT 인덱스의 여러 유형을 시도했다. 두 열에 대해 별도의 인덱스를 사용해 보았습니다. 두 열을 모두 포함하는 인덱스를 시도했습니다.

이름 열을 기반으로 결과를 반환 할 때 검색이 제대로 작동하지만 also_match 열에서 아무 것도 나타나지 않습니다. 0 결과를 반환

SELECT * 
FROM subjects 
WHERE MATCH(s.name, s.also_match) AGAINST ('*Information*' IN BOOLEAN MODE) 
LIMIT 20 

예 쿼리 : 1 개 결과를 반환

예 쿼리

SELECT * 
FROM subjects 
WHERE MATCH(s.name, s.also_match) AGAINST ('*IT*' IN BOOLEAN MODE) 
LIMIT 20 
+0

테이블의 전체 스키마 및 작동하지 않는 몇 가지 샘플 쿼리를 게시하시기 바랍니다. – nikhil500

답변

0

나는 당신의 문제는 MySQL의는보다 인덱스 단어 짧은 않는다는 것을 생각 특정 길이. 길이는 ft_min_word_len 변수에 지정됩니다. 당신이 ft_min_word_len이 짧게 경우는 불행히도 전체 서버에 영향을

SELECT * FROM `fulltext` f 
WHERE MATCH (also_match) AGAINST ('CS*' IN BOOLEAN MODE); 

+------------------+------------+----+ 
| name    | also_match | id | 
+------------------+------------+----+ 
| Computer Studies | C.S. CSSS | 4 | 
+------------------+------------+----+ 

및 :

+------------------------+------------+----+ 
| name     | also_match | id | 
+------------------------+------------+----+ 
| Information Technology | IT I.T. | 1 | 
| Mathematics   |   | 2 | 
| Religious Studies  | RS   | 3 | 
| Computer Studies  | C.S. CSSS | 4 | 
+------------------------+------------+----+ 

그런 다음 다음 쿼리가 작동합니다

예를 들어, 테이블을 가정하는 것은 이것이다 FULLTEXT 지수를 훨씬 더 크게 만들 것입니다.

정말 짧은 키워드 또는 build your own fulltext search을 감지 할 때 also_match에서 LIKE를 사용해야 할 수도 있습니다.

+0

죄송합니다. 추가 정보가 필요합니다. – BadHorsie

+0

내 대답을 업데이트했습니다. –

+0

고마워, 나는 이것이 대답이라고 생각한다. – BadHorsie

0

당신이 사용하고 있는지 위치 :이 전체 텍스트 검색 엔진의

하나는 문제를 해결할 수 있습니다 BOOLEAN 모드에서 별표가 올바르게 나타 납니까?

별표는 잘림 (또는 와일드 카드) 연산자로 사용됩니다. 다른 연산자 인 과 달리 영향을받을 단어에 추가해야합니다. 단어가 * 연산자 앞에 오는 단어로 시작하면 단어가 일치합니다.

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

+0

하나의 와일드 카드가 추가되도록 수정하려고 시도했습니다. 차이는 없습니다. – BadHorsie

관련 문제