Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск по статической карте статического сайта.
 
 автор: Владимир55   (01.06.2007 в 09:48)   письмо автору
 
 

Есть статическая карта сайта, содержащая ссылки на его статические страницы. Ссылки имеют вид:

<br><a href="htm/36.htm">Мэр Москвы Юрий Лужков выступил на заседании Правительства</a>
<br><a href="htm/37.htm">Семья погибшего строителя получит  помощь</a>
<br><a href="htm/38.htm">Намечено расширение Мосфильмовской улицы</a>
<br><a href="htm/39.htm">Москва компенсирует убытки частных застройщиков</a>


Нужно посредством рнр скрипта осуществить два вида полнотекстового поиска:
1. Установить только сам факт, что такая запись в Карте существует. То есть если задано $poisk = 'Намечено расширение Мосфильмовской улицы', то чтобы появлялось сообщение "Найдено".
2. Открыть соответствующую страницу. То есть если задано $poisk = 'Намечено расширение Мосфильмовской улицы', то чтобы открылась страница 38.htm из папки htm.

Вот как бы такое сделать??

   
 
 автор: mihdan   (01.06.2007 в 13:07)   письмо автору
 
   для: Владимир55   (01.06.2007 в 09:48)
 

На js-очень просто...Лезь туда.
На РНР - regexp

   
 
 автор: Владимир55   (01.06.2007 в 14:47)   письмо автору
 
   для: mihdan   (01.06.2007 в 13:07)
 

*** На JS-очень просто...Лезь туда***

Полазил. И результат удивил:
1. Как сделать поиск по сайту? - автор: elenaki (02.01.2007 в 19:01) на Java-script? не выйдет, если сайт состоит больше, чем из одной страницы... я делала т.н. имитацию текстовой базы с поиском по ней, но в наше время, при наличии кучи бесплатных хостингов с PHP это - извращение.
http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=30154
2. Подскажите пожалуйста как написать код для поиска по сайту. Т.е. мы в поле вводим слово или фразу и нажимаем на кнопку найти и открывается страничка с этой фразой. Заранее спасибо! - coloboc66 (30.09.2006 в 13:14) Это можно сделать только на серверных языках- PHP, Perl и т.д.
http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=25437

То есть, в разделе JS относительно поиска отсылают в рнр, ибо на JS это невозможно, а в РНР уверяют, что это можно только на JS...

Что-то я совсем запутался!

   
 
 автор: Trianon   (01.06.2007 в 15:48)   письмо автору
 
   для: Владимир55   (01.06.2007 в 14:47)
 

Это не в PHP уверяют. Это Вы напоролись на несостоятельное мнение.

На самом деле, даже если в отрыве от контекста прочесть "*** На JS-очень просто...Лезь туда***" - этого уже достаточно.
На JS не бывает "очень просто". И даже просто "просто" бывает очень редко.

   
 
 автор: Владимир55   (01.06.2007 в 16:42)   письмо автору
 
   для: Trianon   (01.06.2007 в 15:48)
 

Согласен.

Ну, а как же сделать поиск?

   
 
 автор: Владимир55   (02.06.2007 в 00:02)   письмо автору
 
   для: Владимир55   (01.06.2007 в 16:42)
 

Если я воспользуюсь функцией strpos, это нормально? Типа
 
$var = strpos ($text, $fr) ;
if ($var) echo "<br>Найдено!" ; 
 


Или это грубо?
Если учесть, что в тексте может быть до 5000 знаков, а в переменной $fr может быть несколько слов и 200-300 знаков.

   
 
 автор: Trianon   (02.06.2007 в 00:27)   письмо автору
 
   для: Владимир55   (02.06.2007 в 00:02)
 

strpos сможет найти лишь точное (до последнего символа) вхождение фразы.

Методика полнотекстового поиска - достаточно обширная и емкая область поисковых алгоритмов. Наверняка в mysql ей соответствует весьма нетривиальнй код.
В общем случае, для каждой статьи, помимо её текста нужно хранить набор примененных в ней слов. Нужно вычислять такой набор для искомой фразы. Нужно сравнивать эти наборы, выясняя мощность пересечения. Просто так - одной функцией - это не сделать.

   
 
 автор: Владимир55   (02.06.2007 в 12:03)   письмо автору
 
   для: Trianon   (02.06.2007 в 00:27)
 

*** для каждой статьи, помимо её текста нужно хранить набор примененных в ней слов.***
Имеется в виду, хранить все словоформы для каждого использованного в статье слова?

*** Нужно вычислять такой набор для искомой фразы. ***
То есть, опять же, определять все словоформы для каждого слова?

И уж теперь, после всех этих вычислений, сравнивать все многообразие форм поискового запроса с массивом словоформ текста?

Так или нет?

А что такое индексация сайта? Это и есть составление словоформ для всех использованных в тексте слов?

   
 
 автор: Trianon   (02.06.2007 в 12:17)   письмо автору
 
   для: Владимир55   (02.06.2007 в 12:03)
 

Это уже детали реализации.
Конечно, именно они определяют, насколько механизм поиска будет удобным.
Но тут всё зависит от только от разработчика.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования