удалось разыскать список эээ, похоже что основ слов (говорили мне учиться в школе ;-() на основании словарей Зализняка, Мюллера объем порядка 14Кб
тоже как вариант
регекспы может быть, но всеже 300Кб? Это ведь без компрессии
насчет пошустрее апшипся, похоже был временный глюк, или кешируете результаты?
ёёёё, а какже кодировки?
http://index.online.ua/?q=18 самый низ страницы, не зачет :-(
ессесно может, и не только он
кажется мне что ваш поиск ясче недавно работал пошустрее, да и релевантность выдаваемых документов по-моему тоже изменилась, и не в лучшую сторону :-(, попробуйте поискать по слову "тестирование" и сравните документы в начале и документы в конце
з.ы. и сдается мне что украинский эквивалент было бы логичнее в этом случае скинуть в конец, человек то задал поиск на русском языке
мдя, забавный человек Ваш шеф, пламенный ему привет :-)
никаких проблем, просто заинтересовала часть в агенте, а именно "Mozilla/4.0", спайдер эмулирует работу браузера? смысл? лишние ресурсы, ули указано для красоты?
www.online.ua spider like Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
кхе-кхе :-)
кризис жанра миновал ;-)
приведенный пример лишь один из вариантов, но как и любой другой он имеет свои минусы, для примера подобный механизм по базе объемом в 53 тыс строк (примерно 30Мб) ищет порядка 0,02 сек, реливантность результата как для каталога сайтов удовлетворительна, но вот при увеличении количества записей до примерно ~200 тыс строк и объемах более таблицы 100Мб уже начинаются серьезные тормоза и резкое увеличение нагрузки на ресурсы. Поэтому выбор метода будет упираться в актуальности затрачиваемых усилий. Хочешь действительно качественный поиск юзай индексы. Думаю что в твоем случае с головой хватит только лишь обратного индекса.
http://dev.mysql.com/doc/refman/4.0/ru/reference.html Вам поможет, разберитесь для начала с языком запросов, что и как работает, тогда Вы поймете что именно Вам выдает MATCH, что такое "релевантность boolean mode" и почему куча LIKE лучше кучи MATCH`а. Удачи.
Умеющий уши да услышит!
если Вы не относите эту часть к запросу, думаю что Вы сами не совсем понимаете свою же проблему. Со совей стороны могу посоветовать лишь одно, избавьтесь в запросе от множества MATCH, сильно тормозит и введите весовые коэффициенты, попробуйте что-то вроде
$query = "SELECT `search`.*, "
." IF (search like '%".$text."%', 3*10, 0) "
." + IF (search LIKE '%".str_replace(" ", "%', 9, 0) + IF (search LIKE '%", $text)."%', 9, 0) AS relev"
." FROM `search` "
." WHERE (`search`.`search` LIKE '%".str_replace(" ", "%' OR `search`.`search` LIKE '%", $text)."%') "
." ORDER BY relev DESC";
Где соответственно $text это Ваш поисковый массив. $n количество поисковых слов. Выборку по нескольким полям довьте сами.