|
| |
|
|
| |
для: Владимир55
(02.06.2007 в 12:03)
| | | Это уже детали реализации.
Конечно, именно они определяют, насколько механизм поиска будет удобным.
Но тут всё зависит от только от разработчика. | |
| |
|
|
| |
|
|
| |
для: Trianon
(02.06.2007 в 00:27)
| | | *** для каждой статьи, помимо её текста нужно хранить набор примененных в ней слов.***
Имеется в виду, хранить все словоформы для каждого использованного в статье слова?
*** Нужно вычислять такой набор для искомой фразы. ***
То есть, опять же, определять все словоформы для каждого слова?
И уж теперь, после всех этих вычислений, сравнивать все многообразие форм поискового запроса с массивом словоформ текста?
Так или нет?
А что такое индексация сайта? Это и есть составление словоформ для всех использованных в тексте слов? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(02.06.2007 в 00:02)
| | | strpos сможет найти лишь точное (до последнего символа) вхождение фразы.
Методика полнотекстового поиска - достаточно обширная и емкая область поисковых алгоритмов. Наверняка в mysql ей соответствует весьма нетривиальнй код.
В общем случае, для каждой статьи, помимо её текста нужно хранить набор примененных в ней слов. Нужно вычислять такой набор для искомой фразы. Нужно сравнивать эти наборы, выясняя мощность пересечения. Просто так - одной функцией - это не сделать. | |
| |
|
|
| |
|
|
| |
для: Владимир55
(01.06.2007 в 16:42)
| | | Если я воспользуюсь функцией strpos, это нормально? Типа
$var = strpos ($text, $fr) ;
if ($var) echo "<br>Найдено!" ;
|
Или это грубо?
Если учесть, что в тексте может быть до 5000 знаков, а в переменной $fr может быть несколько слов и 200-300 знаков. | |
| |
|
|
| |
|
|
| |
для: Trianon
(01.06.2007 в 15:48)
| | | Согласен.
Ну, а как же сделать поиск? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(01.06.2007 в 14:47)
| | | Это не в PHP уверяют. Это Вы напоролись на несостоятельное мнение.
На самом деле, даже если в отрыве от контекста прочесть "*** На JS-очень просто...Лезь туда***" - этого уже достаточно.
На JS не бывает "очень просто". И даже просто "просто" бывает очень редко. | |
| |
|
|
| |
|
|
| |
для: 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...
Что-то я совсем запутался! | |
| |
|
|
| |
|
|
| |
для: Владимир55
(01.06.2007 в 09:48)
| | | На js-очень просто...Лезь туда.
На РНР - regexp | |
| |
|
|
| |
|
|
| | Есть статическая карта сайта, содержащая ссылки на его статические страницы. Ссылки имеют вид:
<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.
Вот как бы такое сделать?? | |
| |
|
|
|