2015-01-18 5 views
0

DB структура такова:Полный поиск текста работает неожиданно

no|brand|name 

1|vim|one 
2|vim|two 
3|vimal|three 

Моего запрос для поиска полного текста этой таблицы заключается в следующем:

$words[0]='vim'; 
$query = "SELECT * FROM products WHERE MATCH (name,brand) AGAINST 
('*".$words[0]."*' IN BOOLEAN MODE)"; 

Он возвращает только третью строку со значением бренда как vimal & не возвращается больше двух строк, где он должен возвращать все три строки.

Подобно запросу работает нормально, хотя like %$words[0]%.

Может ли кто-нибудь сказать, почему полнотекстовый поиск не работает нормально или ами?

+0

Также вы на mysiam или innodb? – Mihai

+2

Ну, я нашел решение для этого, для переменной 'ft_min_word_len' установлено значение 4, а имя моего бренда - длина 3. И это происходит с каждым трехсловным словом. –

+1

Опубликуйте его как свой ответ, чтобы решить вопрос – Mihai

ответ

0

Настройки MySQL ft_min_word_len устанавливается на 4 по умолчанию &, таким образом, не в состоянии найти продукт с длиной 3. Изменение этой настройки будет решить эту проблему.

Смежные вопросы