Перечислено по этому вопросу: Проблема MySQL - ЗАВЕРШЕНИЕ переполнения сервера!Пожалуйста, сообщите все мои данные о сервере, поэтому мне не нужно переписывать их здесь.
Так что у меня PHP-скрипт, который взаимодействует с MySQL базы данных.2 дня назад, из-за большого количества запросов от моих пользователей, я переключился с классического "select * from table", где столбец как "blabla" и столбец как "lablab" "на полнотекстовый поиск.Проиндексированы, проверены, хорошо идти.2 дня на работе, уже получил пакет жалоб.
Поиски действительно лучше, то есть если вы используете полные слова ...: (
попробуйте поискать "яблоко", и вынайти почти те же результаты.
попробуйте поискать "компьютер Apple по низким ценам", и полнотекстовый поиск будет ПУТЬ выше любого ПОИСКА LIKE
попробуйте поискать "ple", и вы получите полный списокрезультатов классическим методом ... но большой жирный текст "Ничего не найдено" лежит перед вами с полнотекстовым поиском ...
Извините за то, что до этого момента это звучало поэтично ...: |
Есть ли обходной путь для этого? Заставить полный текст использовать какие-то чертовы подстановочные знаки? Например,% foo% должен принести мне ffoork, flfooor и т. Д ...
А для тех из вас, кто спрашиваетДа, я действительно не знаю, как разбираться в MySQL, кроме синтаксиса, простых выражений и основных функций.
Пожалуйста, помогите мне с фрагментом кода или ссылкой на какой-нибудь метод решения этого ... Если возможно,я бы предпочел не соблюдатьрасскажите о моем существовании с какой-нибудь сторонней поисковой системой mysql, но в крайнем случае ...
Заранее большое спасибо!Ура!
Извините, я забыл поставить код:
$query="SELECT *,
CASE when title like '%".$s."%' then 1 else 0 END as titlematch,
CASE when tags like '%".$s."%' then 1 else 0 END as tagsmatch,
MATCH (title, tags) AGAINST ('".$s."') AS relevance
FROM videos
WHERE MATCH(title, tags) AGAINST ('".$s."' IN BOOLEAN MODE)
HAVING relevance > 0
ORDER by titlematch desc, tagsmatch desc, relevance desc, `datetime` desc, `views` desc
";