ЗодчийТеней

ЗодчийТеней
Рейтинг
11
Регистрация
13.02.2006

удалось разыскать список эээ, похоже что основ слов (говорили мне учиться в школе ;-() на основании словарей Зализняка, Мюллера объем порядка 14Кб

lagif:
ЗодчийТеней, Это было, наверняка, дерево, по буквам, как у Андрея Коваленко.
Почитайте тут: http://linguist.nm.ru/ling/rus/help.htm (пункт 3 особенно)

тоже как вариант

Jazzina:
Имхо, это были правила (регекспы, допустим) и исключения ;)

регекспы может быть, но всеже 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Мб уже начинаются серьезные тормоза и резкое увеличение нагрузки на ресурсы. Поэтому выбор метода будет упираться в актуальности затрачиваемых усилий. Хочешь действительно качественный поиск юзай индексы. Думаю что в твоем случае с головой хватит только лишь обратного индекса.

Tarry:
Это все очень хорошо, но причем тут FULLTEXT? Зачем городить кучу LIKE если есть готовый механизм поиска по FULLTEXT INDEX?
MATCH `поле` AGAINST ('запрос') уже выдает мне некое число, Вот это уже ближе к истине, ибо так оно и есть. Но boolean mode нужен для модификации словосочитаний по +*- итд. Так что без него не куда...
А релевантность boolean mode как раз выдается либо 0 либо 1. Так что приходится комбинировать эти два типа. Засада, короче.

http://dev.mysql.com/doc/refman/4.0/ru/reference.html Вам поможет, разберитесь для начала с языком запросов, что и как работает, тогда Вы поймете что именно Вам выдает MATCH, что такое "релевантность boolean mode" и почему куча LIKE лучше кучи MATCH`а. Удачи.

Умеющий уши да услышит!

Tarry:
А в механизме расчета релевантности в MySQL FULL TEXT.

если Вы не относите эту часть к запросу, думаю что Вы сами не совсем понимаете свою же проблему. Со совей стороны могу посоветовать лишь одно, избавьтесь в запросе от множества 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 количество поисковых слов. Выборку по нескольким полям довьте сами.

Всего: 95