Почему функция 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

Другие вопросы по тегам