как отключить 50% исключение запроса на совпадение в MySQL - PullRequest
2 голосов
/ 19 июля 2010

Так что, очевидно, если полнотекстовый индекс таблицы Mysql содержит ключевое слово, которое появляется в 50% строк данных, это ключевое слово будет игнорироваться запросом на совпадение

Так что, если у меня есть таблица с полнотекстовым индексом 'content', которая содержит 50 записей и 27 из записей содержат слово «компьютер» в поле содержимого, и я запускаю запрос:

SELECT * 
  FROM `table` 
 WHERE MATCH(`content`) AGAINST ('computer'); 

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

есть ли способ отключить эту функцию, тем более что это проблематично на начальном этапе срока службы базы данных

Ответы [ 2 ]

2 голосов
/ 19 июля 2010

Используйте полнотекстовый поиск BOOLEAN, чтобы обойти функцию 50%.

http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

0 голосов
/ 19 июля 2010

Да, используйте булеву опцию полнотекстового поиска

См. Здесь Mysql Manual

В руководстве говорится, что «они не используют порог 50%».

Поиск в MySQL не интуитивен, и руководство немного сбивает с толку, поэтому вам необходимо внимательно прочитать его, а также подготовить несколько тестовых примеров, чтобы убедиться, что он работает и что вы правильно его реализовали (из горького опыта).

Существует ряд других поисковых плагинов различной сложности, на которые вы, возможно, захотите посмотреть, которые работают лучше, но стоит разобраться с нативной версией, поскольку она быстрая и (легкая?) Грязная..

...