Модернизация поиска по сайту и формы поиска
Здравствуйте!
Сейчас имеем в файле поиска (сокращенный вариант):
$q=$_GET['q'];
$q = preg_replace ("/[^a-zA-ZА-Яа-я0-9\s]/","",$q);
echo ("
");
if ($q != '') {$q = ereg_replace(" ","*.",$q); $lq="and (profecy REGEXP '$q' or treb REGEXP '$q' or obyaz REGEXP '$q' or uslov REGEXP '$q')";}
if (!isset($ord) or $ord == "") {$qweryord='date DESC';}
$result = @mysql_query("SELECT *,DATE_FORMAT(date,'%d.%m.%Y') as dateq FROM $vactable WHERE status='ok' $lq $lsrrazdel $lsrpodrazdel ORDER BY top DESC,$qweryord LIMIT $initialMsg, $maxThread");
while ($myrow=@mysql_fetch_array($result))
{
$ID=$myrow["ID"];
$profecy=$myrow["profecy"];
$treb=$myrow["treb"];
}
Необходимо чтобы выполнялись задачи:
1. Поиск без учета порядка слов в запросе. И необязательно, чтобы все были в документе.
2. Поиск по части слова. Если ищут "бухгалтер", то выводить: бухгалтер, бухгалтером, бухгалтеру и тд.
3. У слов более n символов обрезать последний символ при поиске в базе. Например, пишут "на вахту" - обрезаем "у" и находим слова: вахта, вахтой и тд. Вахтер тоже попадет, не без этого. Минимальную длину слов у которых удаляется последний символ надо задать в начале файла для поиска наиболее подходящего значения.
4. Добавить сортировку результата по релевантности (по кол-ву вхождений слов). Что-типа этого: http://conture.by/post/96
5. Выделить стронгом слова из запроса в результатах поиска (не сокращенный вариант без последнего символа, конечно).
6. Не искать по предлогам и союзам (по, на, и, в, от, до и тд).
7. Под поле для ввода поисковой фразы добавить пару примеров поиска при клике на который он переходит в строку поиска (как на главной Яндекса). Пусть это будут просто словосочетания "первый поиск", "второй поиск".