|
|
|
| Здравствуйте. Интересует тема создания поисковика. Если можно, кинте ссылочку, где бы подробно обсуждалась эта тема (виды поисковиков, их принцип работы), или хотя бы название книги с подробной инфой по этому вопросу. Заранее спасибо. | |
|
|
|
|
|
|
|
для: gumplen
(29.05.2007 в 15:01)
| | 1) Имеется в виду поисковый робот (индексирует сайты в сети Интернет) или поиск по сайту?
2) Если это поиск по сайту, то используется ли СУБД MySQL или всё на файлах? | |
|
|
|
|
|
|
|
для: cheops
(29.05.2007 в 15:42)
| | 1. Имеется ввиду поиск по сайту.
2. Меня интересует теоретическая информация о том какие они бывают (в том числе и на файлах и на MySQL) | |
|
|
|
|
|
|
|
для: gumplen
(29.05.2007 в 15:56)
| | Что, никто не знает? Очень нужно... | |
|
|
|
|
|
|
|
для: gumplen
(29.05.2007 в 19:16)
| | нет просто если у тебя информация которую ты выводишь на сайте содержиться в фаилах то ишеться одним методом если в БД то другим
в БД проше просто делаешь запрос с нужного поля (например тема сообшения) используешь LIKE %$_POST['find']%; где $_POST['find']' это то что ты ишешь ну вот и все далее запрос выводишь как тебе надо и все | |
|
|
|
|
|
|
|
для: KVN
(29.05.2007 в 19:22)
| | Вы меня не совсем правильно поняли. Меня интерисуют статьи(книги) в которых бы описывались различные алгоритмы поисковиков. Не обязательно даже чтоб там был код, интерисуют алгоритмы. | |
|
|
|
|
|
|
|
для: gumplen
(29.05.2007 в 20:32)
| | Хм... да собственно алгоритмы уже зашиты в инструментарий... Ничего кардинального делать не нужно - за вас всё сделает СУБД, причём сделает это правильно и быстро. | |
|
|
|
|
|
|
|
для: cheops
(30.05.2007 в 01:50)
| | В общем так. У меня курсовой проэкт, тема его - "Разработка системы поиска по сайту", есть раздел в курсовом - "Аналогичные системы", в котором нужно расписать какие поисковики есть (их алгоритмы) и почему я выбрал тот, который выбрал.
Подкинте статейку или книжку на эту тему. | |
|
|
|
|
|
|
|
для: gumplen
(30.05.2007 в 15:02)
| | Когда-то наткнулся на интересующую тебя тему, скопировал все в док, могу кинуть на мыло...
хм...сразу крепежку не увидел... | |
|
|
|
|
|
|
|
для: Jackson
(30.05.2007 в 15:23)
| | Спасибо | |
|
|
|
|
|
|
|
для: gumplen
(30.05.2007 в 15:27)
| | Прикрепил к предыдущему сообщению..... Буду за тебя рад, если пригодится... | |
|
|
|
|
|
|
|
для: gumplen
(30.05.2007 в 15:02)
| | Если рассматривать вопрос в рамках курсовой, алгоритмы могут быть следующие:
1) Хранение информации в базе данных и поиск по ней (лучше отталкиваться именно от этого варианта) - рассмотртеть операторы LIKE, RLIKE и полнотектовый поиск (было бы хорошо, если для нескольких баз данных - MySQL, InterBase, MS SQL, Oracle - не получится, можно для одной). Преимущество - высокая скорость, недостатки - ищутся не страницы, а записи
2) Поиск по статическому сайту путём его индексации при помощи специального робота или системы администрирования. Т.е. робот обходит сайт и создаёт один файл с ключевыми словами и ссылками, где он их нашёл. Достоинства - идёт поиск страниц, недостатки - ресурсоёмко, сложно-создаваемо, количество ключевых слов ограничено.
3) Внешний поиск, осуществляющийся при помощи специального сервера, например, Yandex - достоинства - ничего делать не нужно кроме как установить и пользоваться. Недостатки - логика зашита в сервер и не поддаётся коррекции - полноценная версия продаётся за деньги (порядка 2.5 миллиона рублей). Нужно быть администратором всего сервера, чтобы установить эту систему.
PS Я бы по такой схеме выстраивал логику. | |
|
|
|
|
|
|
|
для: gumplen
(29.05.2007 в 15:01)
| | Свяжитесь со мной по мылу | |
|
|
|
|
|
|
|
для: mihdan
(31.05.2007 в 18:33)
| | Поиск по mysql я реализовал так (с помощью этого форума):
<FORM METHOD=POST ACTION="<?=$_SERVER['PHP_SELF']?>">
<B>ПОИСК</B> <strong> ПО САЙТУ</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) == 0 ) { 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;
?>
|
| |
|
|
|
|
|
|
|
для: skazi
(01.06.2007 в 20:06)
| | Что-то я не усматриваю связи между длиной запроса в три символа и запросом LIKE...
это если не праить в расчет, что у вас входные данные обрабатываются неправильно. | |
|
|
|
|
|
|
|
для: Loki
(01.06.2007 в 20:54)
| | а тогда куда писать Обпаботку* | |
|
|
|
|
|
|
|
для: skazi
(03.06.2007 в 01:29)
| | Дак если запросить % он всю таблицу выдаст | |
|
|
|
|
|
|
|
для: Job
(03.06.2007 в 03:44)
| | Задача стояла такова:
Если введенное слово болше 3 символов => поиск, иначе ошибка | |
|
|
|