2012-10-24 11 views
6

Próbuję znaleźć ciąg "zen" w polu zawierającym "The Zen Circus". Mam indeks FULLTEXT.Wyszukiwanie pełnotekstowe na mysql za pomocą 3-literowego słowa

select url,name, 
, MATCH(name) AGAINST ('zen*' IN BOOLEAN MODE) as A 
, MATCH(name) AGAINST ('"the zen*"' IN BOOLEAN MODE) as B 
, MATCH(name) AGAINST ('>the* zen' IN BOOLEAN MODE) as C 
, MATCH(name) AGAINST ('thezen*' IN BOOLEAN MODE) as D 
, MATCH(name) AGAINST ('cir*' IN BOOLEAN MODE) as E 
, MATCH(name) AGAINST ('circus*' IN BOOLEAN MODE) as F 
from pages where url='thezencircus' 

Mam ten wynik:

url = thezencircus 
name = The Zen Circus 
A = 0 (why?) 
B = 0 (why?) 
C = 0 (why?) 
D = 0 (ok) 
E = 1 (ok) 
F = 1 (ok) 

Ja również putted ft_min_word_len = 2 w pliku msyql config.

Każdy pomysł?

Odpowiedz

9

Zobacz tę odpowiedź MySQL full text search for words with three or less letters

[mysqld]
ft_min_word_len = 3
Następnie należy zrestartować serwer i odbudować indeksy pełnotekstowe.

Pamiętaj o ponownym uruchomieniu i odbudowaniu indeksów.


Edit
Run show variables like 'ft_%'; aby potwierdzić, że długość słowo pasuje co ustawić go.

+0

Zrobiłem wszystko, co powiedziałeś, dziękuję, ale problem wciąż tu jest. :-( – Pons

+0

Spróbuj uruchomić strony NAPRAWY TABELI SZYBKO; Również, aby się upewnić, że masz rację, ustawiając ft_min_word_length: http://lostquery.com/questions/196/how-do-i-enable-short-3 -letter-full-text-search-in-mysql to tak jak Ty to zrobiłeś – Kao

+0

Zobacz także moją edycję, jak potwierdzić wartość ft_min_word_len – Kao

Powiązane problemy