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

Форум PHP

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

 

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

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

тема: поисковик???
 
 автор: DEM   (01.03.2008 в 15:00)   письмо автору
 
 

Скажите, где можно почитать про то, как сделать свой поисковик? Просто уже довольно давно хочу сделать "для себя", что ли... Но даже не имею представления, как это всё может происходить )))

   
 
 автор: Sobachka   (01.03.2008 в 17:28)   письмо автору
 
   для: DEM   (01.03.2008 в 15:00)
 

вам нужен форум не по пхп...

   
 
 автор: kisit   (01.03.2008 в 18:43)   письмо автору
 
   для: Sobachka   (01.03.2008 в 17:28)
 

Смотря что и где искать....вообще советовал бы перейти на форум MySQL

   
 
 автор: afdm   (01.03.2008 в 19:04)   письмо автору
 
   для: DEM   (01.03.2008 в 15:00)
 

а зачем? для каких целей? типа мини-яндекса или мини-гугла? :)
да и собственно такие вещи на php не пишутся...

   
 
 автор: DEM   (01.03.2008 в 21:02)   письмо автору
 
   для: DEM   (01.03.2008 в 15:00)
 

То есть яндекс или гугл написан не на РНР?

   
 
 автор: afdm   (01.03.2008 в 21:42)   письмо автору
 
   для: DEM   (01.03.2008 в 21:02)
 

конечно! PHP для этого слишком медленный... гугл и яндекс написаны на Perl, C++ и т.п.
где-то слышал, что яндекс вообще реализует некоторые свои функции как-то аппаратно...
вот так вот... а вы говорите, php :)
нет, ну конечно может быть некоторые части и написаны на php, но это лишь малая часть :)

PS недавно была тема "На чём написаны популярные сервисы"... вот там как раз всё про это... и про то тоже :))

   
 
 автор: afdm   (01.03.2008 в 21:43)   письмо автору
 
   для: DEM   (01.03.2008 в 21:02)
 

.

   
 
 автор: kvv   (01.03.2008 в 21:16)   письмо автору
 
   для: DEM   (01.03.2008 в 15:00)
 

Амбициозно (: Вы по моему не представляете, как это сложно... "поисковик".
Начните с более тривиальных и простых вещей. От простого к сложному.

   
 
 автор: DEM   (02.03.2008 в 00:25)   письмо автору
 
   для: kvv   (01.03.2008 в 21:16)
 

Так ничего простого больше в голову не лезет :) Я понимаю что ЯНДЕКС - это оффигено сложно и т.д. Мне бы просто хотелось услышать, как это можно сделать. Мне не нужен код или еще что, просто теорию, мне всегда было интересно, неужели он просто тупым перебором переходит от сайта к сайту и ищет там нужную инфу, или у него к примеру есть некоторый список сайтов-каталогов других сайтов (во как загнул) по которым он и отбирает необходимые сайты... ну или еще какой нить вариант )))

   
 
 автор: kvv   (02.03.2008 в 08:41)   письмо автору
 
   для: DEM   (02.03.2008 в 00:25)
 

Все поисковики прячут свои технологии и способы по углам (:
Могу предположить, что они пользуются и тем и этим способом. Кравлеры высасывают содержимое сайтов полностью (не за один раз), а затем заливают эту информацию по своим поисковым базам. Если сборщик нашел Ваш ресурс, то будьте уверены, он будет посещать Вас часто. Еще есть такие понятия как "песочница" и т.п. В общем удачи Вам в этом ОЧЕНЬ не легком деле (: Но на php это осуществить вряд ли удастся, народ прав.

   
 
 автор: afdm   (02.03.2008 в 12:50)   письмо автору
 
   для: kvv   (02.03.2008 в 08:41)
 

>>осуществить вряд ли удастся
тем более одному...

   
 
 автор: cheops   (02.03.2008 в 14:07)   письмо автору
 
   для: DEM   (01.03.2008 в 15:00)
 

Небольшой, особенно по нескольким сайтам вполне реально. Аглоритм такой
1) Загружаете содержимое заглавной страницы
2) Извлекаете все локальные ссылки и помещаете их в базу данных
3) Загружаете содержимое по ссылкам и опять их разбираете
4) Для каждой из страниц генерируете на основании содержимого хэш-код (чтобы предотвратить зацикливание)
5) Если хотите как в Yandex нужно индекс строить, если не хотите с ним связываться, помещаете всё в базу данных и ищите по ней.

PS Если планируете использовать PHP, он должен работать без ограничений по времени и регулярно освобождать память, выделенную под переменные (чтобы не исчерпать лимит по памяти).

   
 
 автор: kvv   (02.03.2008 в 16:44)   письмо автору
 
   для: cheops   (02.03.2008 в 14:07)
 

"По нескольким сайтам" это не амбициозно (:
Однако проект должен жить долгое время... Проблема с нехватками ресурсов через некоторое время всё равно будет иметь место ):
Строить такой проект все же можно (даже нужно), во-первых: собственное повышение квалификации; во-вторых: хотя бы с целью продать движок поисковика (:
Тут я с Вами согласен...

   
 
 автор: DEM   (02.03.2008 в 18:34)   письмо автору
 
   для: kvv   (02.03.2008 в 16:44)
 

Тут только СБСТВЕННОЕ ПОВЫШЕНИЕ КВАЛИФИКАЦИИ ну и, опять же, интерес )))

   
 
 автор: provodnik   (03.03.2008 в 23:21)   письмо автору
 
   для: DEM   (02.03.2008 в 18:34)
 

Я пробовал писать поисковую систему для сайтов своего района.
Что имел: 400 урлов сайтов своего района. От визиток до порталов и магазинов.
С чего начинал:
Визуально осматривал сайт на предмет страниц, не нужных к индексации (страницы добавления объявлений, каких-то данных...), что бы добавить их в "серый список".
1. Импортируем содержимое главной страницы. Снимаем хэш md5() общих полученных данных.
2. Вычленяем TITLE, meta_keywords, meta_description (они имеют ооочень весомый показатель).
3. Вычленяем все ссылки, за исключением всех внешних, сессионных, mailto. В общем остаться должны только чистенькие уникальные для этой страницы ссылочки без сессионных параметров и подобной грязи. Проверяем полученный линки на присутствие в "сером списке", и если все нормально, пишем линки БД.
К сведению: после обработки главной страницы одного городского портала я получил 50 ссылок внутрь сайта.

3. Очищаем контент от тэгов, жаба_скриптов, коротких слов, от их дубликатов, от комментариев и всё, что в них заключено, от знаков препинания, рекламы (если получится). В итоге у меня оставались уникальные для этой странички, не короче 3-4 символов словечки на родном языке.
4. Снимаем повторно хэш md5() того, чего у нас осталось.

Записываем в БД всё, что у нас получилось: домен, титл и теги, оба хэша, дату индексирования и параметр показателя успешности. Записываем это всё для ссылки на главную страницу сайта.

Теперь извлекаем по очереди из БД полученные ссылочки и производим повтор всех операций. Но теперь уже, все полученные ссылки на страницы сайта, оба хэша мы должны сравнивать с уже имеющимися в нашей БД, что бы избежать дублирования информации.
Можно еще перед записью в БД посчитать количество элементов массива с контентом, и если их подозрительно мало, можно не записывать, т.к. возможно это какие либо служебные и вспомогательные страницы, никоим образом не интересны для пользователей, ищущих информацию.

После «первого прохода» у нас получится огромное количество ссылок (у меня, на примере того же портала вышло порядка 1500 ссылок).
С ними проводим те же операции, не забывая проверки на дубликаты.

Так мы получим индекс одного сайта.
Можно еще написать какие нибудь искалки ненужного «грязного» контента. Можно прогнать контент по списку стоп-слов и т.п.

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

Лично я отказался от этой затеи, т.к. не располагал серверными мощностями.
К сведению – БД после индексирования городского портала (каталог фирм, объявления, знакомства, форум, каталог сайтов, фотогалереи…), 2-х сайтов по недвижимости (БД объктов недвижимости, обзоры, статьи), сайта местного провайдера (форум, мануалы, обзоры софта и медиа) и нескольких домашних страничек раздулась до 200 МБ.
Я не стану говорить сколько будет после индексации всех 400 сайтов ( в моем случае) и о систематических нагрузках сервера (помните о переиндексации через какое-то время)…

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

   
 
 автор: Lelik   (04.03.2008 в 00:34)   письмо автору
 
   для: DEM   (01.03.2008 в 15:00)
 

тут когда-то выкладывался скрипт целый :)

   
Rambler's Top100
вверх

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