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

Форум PHP

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

 

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

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

тема: Поиск информации на сайте
 
 автор: gumplen   (29.05.2007 в 15:01)   письмо автору
 
 

Здравствуйте. Интересует тема создания поисковика. Если можно, кинте ссылочку, где бы подробно обсуждалась эта тема (виды поисковиков, их принцип работы), или хотя бы название книги с подробной инфой по этому вопросу. Заранее спасибо.

   
 
 автор: cheops   (29.05.2007 в 15:42)   письмо автору
 
   для: gumplen   (29.05.2007 в 15:01)
 

1) Имеется в виду поисковый робот (индексирует сайты в сети Интернет) или поиск по сайту?
2) Если это поиск по сайту, то используется ли СУБД MySQL или всё на файлах?

   
 
 автор: gumplen   (29.05.2007 в 15:56)   письмо автору
 
   для: cheops   (29.05.2007 в 15:42)
 

1. Имеется ввиду поиск по сайту.
2. Меня интересует теоретическая информация о том какие они бывают (в том числе и на файлах и на MySQL)

   
 
 автор: gumplen   (29.05.2007 в 19:16)   письмо автору
 
   для: gumplen   (29.05.2007 в 15:56)
 

Что, никто не знает? Очень нужно...

   
 
 автор: KVN   (29.05.2007 в 19:22)   письмо автору
 
   для: gumplen   (29.05.2007 в 19:16)
 

нет просто если у тебя информация которую ты выводишь на сайте содержиться в фаилах то ишеться одним методом если в БД то другим
в БД проше просто делаешь запрос с нужного поля (например тема сообшения) используешь LIKE %$_POST['find']%; где $_POST['find']' это то что ты ишешь ну вот и все далее запрос выводишь как тебе надо и все

   
 
 автор: gumplen   (29.05.2007 в 20:32)   письмо автору
 
   для: KVN   (29.05.2007 в 19:22)
 

Вы меня не совсем правильно поняли. Меня интерисуют статьи(книги) в которых бы описывались различные алгоритмы поисковиков. Не обязательно даже чтоб там был код, интерисуют алгоритмы.

   
 
 автор: cheops   (30.05.2007 в 01:50)   письмо автору
 
   для: gumplen   (29.05.2007 в 20:32)
 

Хм... да собственно алгоритмы уже зашиты в инструментарий... Ничего кардинального делать не нужно - за вас всё сделает СУБД, причём сделает это правильно и быстро.

   
 
 автор: gumplen   (30.05.2007 в 15:02)   письмо автору
 
   для: cheops   (30.05.2007 в 01:50)
 

В общем так. У меня курсовой проэкт, тема его - "Разработка системы поиска по сайту", есть раздел в курсовом - "Аналогичные системы", в котором нужно расписать какие поисковики есть (их алгоритмы) и почему я выбрал тот, который выбрал.
Подкинте статейку или книжку на эту тему.

   
 
 автор: Jackson   (30.05.2007 в 15:23)   письмо автору
 
   для: gumplen   (30.05.2007 в 15:02)
 

Когда-то наткнулся на интересующую тебя тему, скопировал все в док, могу кинуть на мыло...
хм...сразу крепежку не увидел...

   
 
 автор: gumplen   (30.05.2007 в 15:27)   письмо автору
 
   для: Jackson   (30.05.2007 в 15:23)
 

Спасибо

   
 
 автор: Jackson   (30.05.2007 в 15:30)   письмо автору
 
   для: gumplen   (30.05.2007 в 15:27)
 

Прикрепил к предыдущему сообщению..... Буду за тебя рад, если пригодится...

   
 
 автор: cheops   (31.05.2007 в 10:47)   письмо автору
 
   для: gumplen   (30.05.2007 в 15:02)
 

Если рассматривать вопрос в рамках курсовой, алгоритмы могут быть следующие:
1) Хранение информации в базе данных и поиск по ней (лучше отталкиваться именно от этого варианта) - рассмотртеть операторы LIKE, RLIKE и полнотектовый поиск (было бы хорошо, если для нескольких баз данных - MySQL, InterBase, MS SQL, Oracle - не получится, можно для одной). Преимущество - высокая скорость, недостатки - ищутся не страницы, а записи
2) Поиск по статическому сайту путём его индексации при помощи специального робота или системы администрирования. Т.е. робот обходит сайт и создаёт один файл с ключевыми словами и ссылками, где он их нашёл. Достоинства - идёт поиск страниц, недостатки - ресурсоёмко, сложно-создаваемо, количество ключевых слов ограничено.
3) Внешний поиск, осуществляющийся при помощи специального сервера, например, Yandex - достоинства - ничего делать не нужно кроме как установить и пользоваться. Недостатки - логика зашита в сервер и не поддаётся коррекции - полноценная версия продаётся за деньги (порядка 2.5 миллиона рублей). Нужно быть администратором всего сервера, чтобы установить эту систему.

PS Я бы по такой схеме выстраивал логику.

   
 
 автор: mihdan   (31.05.2007 в 18:33)   письмо автору
 
   для: gumplen   (29.05.2007 в 15:01)
 

Свяжитесь со мной по мылу

   
 
 автор: skazi   (01.06.2007 в 20:06)   письмо автору
 
   для: mihdan   (31.05.2007 в 18:33)
 

Поиск по mysql я реализовал так (с помощью этого форума):


<FORM METHOD=POST ACTION="<?=$_SERVER['PHP_SELF']?>">
<B>ПОИСК</B>&nbsp;<strong>&nbsp;ПО САЙТУ</strong>
<input type="text" name="query" size="15" maxlength=100 value="" style="{border: inset 1px; background: #EEEEEE;}">
<input type=submit value=" Ок ">
</FORM>
<?
if(!empty($_POST['query']))
{
$name=$_POST['query'];
if (
$name) { 
//Если запрос дольше трех символов - производим запрос в бд
if(strlen($name) >= 3) {
$query "SELECT * FROM `texts` WHERE `text` LIKE '%".mysql_real_escape_string($name)."%'"
$result mysql_query($query);
if (!
$result) die("Error!"); 
if (
mysql_num_rows($result) == ) { echo "По вашему запросу ничего не найдено"; }
while(
$row=mysql_fetch_array($result)) {
for(
$i=0$i mysql_num_rows($result); $i++) { 
$needle ''.$name.''$s1 ''$s2 =''$len 10// $len - это длина выводимых слов до и после найденного слова
$array explode(' '$row['text']); 
$id array_search($needle$array); $plus$id+1$minus $id-$len;
for(
$i=0;$i<$len;$i++){ $s1.= $array[$minus].' '$s2.= $array[$plus].' '$plus++;$minus++; }  
$rezz.= "<br><br><a href=$_SERVER[PHP_SELF]?page=".$row['id'].">".$row['title']."</a><br>...".$s1.'<b>'.$needle.'</b> '.$s2.'..';
}
}
} else { echo 
"Ваш запрос слишком короткий"; }
}
echo 
$rezz;
?>

   
 
 автор: Loki   (01.06.2007 в 20:54)   письмо автору
 
   для: skazi   (01.06.2007 в 20:06)
 

Что-то я не усматриваю связи между длиной запроса в три символа и запросом LIKE...
это если не праить в расчет, что у вас входные данные обрабатываются неправильно.

   
 
 автор: skazi   (03.06.2007 в 01:29)   письмо автору
 
   для: Loki   (01.06.2007 в 20:54)
 

а тогда куда писать Обпаботку*

   
 
 автор: Job   (03.06.2007 в 03:44)   письмо автору
 
   для: skazi   (03.06.2007 в 01:29)
 

Дак если запросить % он всю таблицу выдаст

   
 
 автор: skazi   (03.06.2007 в 18:40)   письмо автору
 
   для: Job   (03.06.2007 в 03:44)
 

Задача стояла такова:
Если введенное слово болше 3 символов => поиск, иначе ошибка

   
Rambler's Top100
вверх

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