Почему функция MATCH() не дает результатов?
Я использую MySQL 5.5.31 Я хочу использовать функции MATCH() и AGAINST(). Для этого я запускаю следующие запросы в phpMyAdmin:
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
) ENGINE=MyISAM;
INSERT INTO articles (title,body) VALUES
('MySQL Tutorial','DBMS stands for DataBase ...'),
('How To Use MySQL Well','After you went through a ...'),
('Optimizing MySQL','In this tutorial we will show ...'),
('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
('MySQL vs. YourSQL','In the following database comparison ...'),
('MySQL Security','When configured properly, MySQL ...');
('MySQL table','The database is very large');
Для поиска строки "база данных" я запускаю следующий запрос:
SELECT * FROM articles
WHERE MATCH (title,body)
AGAINST ('database' IN NATURAL LANGUAGE MODE);
Он вернул все три строки из таблицы, содержащей слово "база данных". Но когда я ищу другую строку, такую как 'the', она ничего мне не возвращает. Это возвращает ноль. Я не понимаю, почему это происходит? Также, если искомая строка присутствует в столбце заголовка, она возвращает ноль. Может кто-нибудь прояснить эти два сомнения, пожалуйста? Заранее спасибо.
2 ответа
MySQL имеет минимальное ограничение в 4 символа для поиска в полнотекстовом режиме.
http://dev.mysql.com/doc/refman/5.1/en/fulltext-fine-tuning.html
ft_min_word_length
переменная может быть изменена.
Вот полный список стоп-слов для дальнейшего использования.
http://dev.mysql.com/doc/refman/5.5/en/fulltext-stopwords.html
Что такое стоп-слова? http://dev.mysql.com/doc/refman/5.1/en/fulltext-natural-language.html
Некоторые слова игнорируются при полнотекстовом поиске:
Слова в списке стоп-слов игнорируются. Стоп-слово - это такое слово, как "или", которое встречается настолько часто, что считается, что оно имеет нулевую семантическую ценность. Существует встроенный список стоп-слов, но он может быть перезаписан пользовательским списком.
Проверьте эту точную настройку полнотекстового поиска MySQL.
Перейдите по этой ссылке. Эта ссылка может помочь вам /questions/17038633/mysql-fulltext-search-uvelichenie-minimalnogo-simvola/17038639#17038639