Полный текст MySQL не возвращает никаких результатов, когда это явно должно быть

Я пытаюсь создать индекс полнотекстового поиска по трем столбцам, но он не возвращает никаких результатов, хотя кажется, что должен. Я воспроизвел проблему в тестовой таблице со следующей структурой и данными:

CREATE TABLE IF NOT EXISTS `testtable` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `link` varchar(255) NOT NULL,
  `description` text NOT NULL,
  PRIMARY KEY (`id`),
  FULLTEXT KEY `title` (`title`,`link`,`description`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

INSERT INTO `testtable` (`id`, `title`, `link`, `description`) VALUES
(1, 'mysql article', 'domain.com/article/1', 'This is an article about MySQL'),
(2, 'some other article', 'domain.com/article/mysql-article', 'This has mysql in the link but not the title'),
(3, 'my super mysql article', 'domain.com/mysql-link', 'the keyword is not in the description'),
(4, 'okay i''m searching for something', 'domain.com', 'and it''s not in the title or description'),
(5, 'mysql article', 'mydomain.com/mysql', 'mysql is definitely written in every field');

Это запрос, который я использую:

select * from `testtable` where MATCH(title, link, description) AGAINST('mysql')

Фраза mysql появляется по крайней мере в одном столбце во всем, кроме строки 4, а в строке 5 фраза mysql присутствует в каждом отдельном столбце. Так что, по крайней мере, он должен возвращать строку 5. Но он не возвращает никаких результатов.

Кто-нибудь может объяснить, почему это происходит?


person John Mellor    schedule 22.06.2013    source источник


Ответы (1)


слова, которые присутствуют в 50% или более строк, считаются общими и не совпадают.

Из документа.

Это означает, что если вы ищете слово, которое содержится в большинстве записей, то оно будет проигнорировано при поиске.

person juergen d    schedule 22.06.2013
comment
Ах, это и интересно, и запутанно, например. представьте себе SEO-сайт, на котором кто-то ищет SEO, было бы глупо не возвращать никаких результатов, даже если здравый смысл подсказывал бы, что результаты не будут такими полезными. Есть ли способ избежать этого? - person John Mellor; 22.06.2013
comment
Ничего, что я могу придумать в данный момент при использовании match. - person juergen d; 22.06.2013