2015-01-25 3 views
0

В настоящее время я использую Boolean Полнотекстовый поиск для моего сайта. Тем не менее, этот метод будет игнорировать слова имеют менее 2 символов.MySQL Boolean Полнотекстовые поиски

Пример:

Название: iphone 4 последняя продажа

$raw_results = mysqli_query($conn,"SELECT * FROM memberpost WHERE MATCH(title) AGAINST('4' IN BOOLEAN MODE)") or die("no result found"); 

Если я напечатал: '4' в поле поиска, он не возвращает никакого результата.

Как я могу заставить это работать даже с 1 символом?

Благодаря

РЕШЕННОГО путем добавления к [туздО] в my.ini файл, перезапуск MySQL службы.

innodb_ft_min_token_size = 1 
innodb_ft_enable_stopword = OFF 
ft_min_word_len = 1 
ft_stopword_file = '' 

Затем запустить этот запрос, чтобы восстановить таблицу:

ALTER TABLE table_name FORCE; 

ответ

1

переменных, которая контролирует это ft_min_word_len, документален here. Вы должны установить его в 1 и, возможно, также переопределить список стоп-слов.

Обратите внимание на три вещи. После его сброса вам необходимо перестроить индекс. Во-вторых, если вы уже обрабатываете двухсимвольные слова, это значение уже было изменено со значения по умолчанию. И три, есть также список стоп-слов, который также фильтрует термины из индекса.

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