|
ПРОЕКТЫ ДАННОЙ КАТЕГОРИИ Все проекты данной категории - 75 TOP 10 ФРИЛАНСЕРОВ Скрипты / Web-приложения
|
Скрипт поиска на PHPСкрипты / Web-приложения
Нужен скрипт поиска на PHP для софтового портала.
Скрипт будет производить поиск программ по базе mysql. Алгоритм работы скрипта: word – поисковое слово или фраза. Поиск производится в кратком описании программ desc_small, полном описании description и в названии name. Скрипт должен поддерживать 2 языка – русский и английский. Язык сайта – это переменная $LANG_NOW – ru или en. А также есть переменная $V_PREF для переменных, ее значение: $V_PREF = ($LANG_NOW=="en") ? "_en" : ""; Т.е. так пишутся переменные: $row[‘name’.$V_PREF], $row[‘version’.$V_PREF] и т.п. Еще в базе есть поле my_lang: 0 - программа имеет только русское описание; 1 - только английское; 2 - и русское и английские. Т.е. при поиске на русском языке ищем только среди программ где: my_lang!=1, а на английском my_lang>0. Строку поиска нужно проверять: длина от 2 до 64 символов. А также очищать от ненужных символов. Еще при поиске нужно исключать некоторые слова, например: номера версий и слова: alpha, beta, free, pro, lite и т.п (лучше чтобы эти слова задавались в виде массива в конфиге и я мог добавлять новые слова). Настройки поиска: 1) Поиск каждого слова из фразы, поиск фразы целиком. 2) Поиск в названии, поиск в описании, везде. При поиске каждого слова фразы – искать не более 5 слов. Результаты поиска (названия программ с найденными фразами) выводить в виде анонса в начале страницы, если спец. флажок ($SHOW_ANOUNCE2) включен. А также результаты поиска (названия с версиями программ) записывать (через пробел) в переменные: $keywords (без версий) и $descript (с версиями). Результаты поиска выводятся в следующем порядке: 1) Результаты с word в начале названия. 2) Результаты с word в середине и конце названия. 3) Результаты с word в описании. Если word найдено в названии – выводим название и краткое описание программы без подсветки. Если word найдено в кратком описании – выводим название и краткое описание, а word подсвечиваем красным жирным шрифтом. Если word найдено в полном описании – выводим название и куски полного описания программы в следующем формате: Текст…word…текст…word…текст… Т.е. выводим найденные слова, слева и справа от которых выводится по несколько слов из полного описания (кажется такое делается через preg_match). Длина участков текста между словами word задается в конфиге. Поиск производится по релевантности – т.е. сначала выдаются самые подходящие результаты, а потом близкие к ним. Скрипт поиска уже есть, если хотите, то можете переписывать из него. Но этот скрипт написан очень нерационально и половины описанных функций в нем не нет. Прошу уделить особое внимаение производительности, т.к. этот скрипт является самым посещаемым и используется на 5 порталах. Для работы выдам: мой скрипт поиска (поможет ознакомиться с общими принципами ораганизации сайта), структуру таблицы, в которой будет призводиться поиск. Слушаю ваши предложения по срокам и ценам.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||