Скрипт поиска на PHP

Web/сайты Прочее

Был(а) онлайн: 26.04.20 14:45
Umen 26 лет

1.0 Был(а) онлайн: 26.04.20 14:45

Недавно
Нужен скрипт поиска на 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 порталах.
Для работы выдам: мой скрипт поиска (поможет ознакомиться с всеобщими тезисами ораганизации сайта), конструкцию таблицы, в которой будет призводиться поиск.

Слушаю ваши предложения по срокам и ценам.

Чтобы добавить заявку к этому заказу, нужно войти или зарегистрироваться

Мой блок

26.04.20 14:45
Umen 26