Essay

Рейтинг
24
Регистрация
14.09.2007

Вы ссылки изучали?

Как минимум три из перечисленных - mnogosearch, dataparksearch, nutch - имеют собственные краулеры. Первые два дружат с русской морфологией.

Еще из вариантов: Яндекс.Server - http://company.yandex.ru/technology/server/ - насколько я помню, в бесплатную версию теперь входит возможность индексирования разных сайтов.

тема всплывает с завидной регулярностью:

/ru/forum/comment/2467762

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

Внесу и свою лепту чуток :)

Есть еще такой подход: обновлять кеш именно тогда, когда

это необходимо.

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

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

Тогда при кешировании страниц сайта вводим следующие соответствия (страница - теги):

Главная страница - news, rubrics

Страницы рубрикатора товаров - news, rubrics, forum

Страница конкретного товара (id: 234) - news, forum, tovar234

Задача по управлению кешированием заключается в реализации алгоритма: при добавлении новости очистить кеш от всех страниц с тегом news, при изменении рубрикатора - страницы с тегом rubrics, при изменениях информации о товаре id: 234 - tovar234

Это в теории :)

На практике все это выливается в многомерную структуру кеша и сложность реализации, изложенного алгоритма: зашивать управление кешем в каждый модуль (новости, форум, каталог товаров) недальновидно с т.з. гибкости архитектуры, т.е., если хотим получить универсальное решение, надо выносить управление кешем на уровень "обертки". Работаю с j2ee - здесь данный подход реализуется навешиванием кеширующего фильтра и фильтра, управляющего кешем на основе заданных правил (что тоже не всегда просто), либо с помощью АОП. Как это сделать на других платформах, не знаю.

Из плюсов: пользователь всегда видит "свежий" контент, т.е. применение алгоритма оправдано тогда, когда "кровь из носа" нужно отдавать актуальную информацию.

Miha Kuzmin (KMY):
Essay, страницы из индекса вылетают активно. Выборка большая. Убрали обработку ims - все пришло в норму.

p.s. все это прошлым летом было, счас не уверен...

Аналогичные траблы, но как-то непонятно: часть сайтов с IMS индексируется без проблем, часть периодически "вылетает" из индекса - грешим на контент (доски объявлений, но не говнодоски, а тщательно модерируемые), но, возможно, дело не в этом...

Miha Kuzmin (KMY):
Essayзы кстати о птичках - яндекс с 304-й очень плохо работает...

А вот тут поподробней, если можно. Какого рода проблемы, и на чем основано это утверждение? Просто используем данный подход на ряде сайтов, с некоторыми из них есть определенные траблы, но как-то не связывали с обработкой IMS.

Miha Kuzmin (KMY):
Господа, тупить бросаем. Постановка вопроса изначально неверная. Для кеширования в поисковиках надо ims обрабатывать с выдачей 301... А на lm им срать. Разве что для поиска по дате нужен.

Ну, тоже не совсем верно :) Согласно RFC, клиент (браузер, прокси, поисковый робот, etc) пошлет запрос IMS (If-Modified-Since) только в том случае, если при предыдущем обращении к странице сервер возвращал заголовок LM (Last-Modified). Так что на LM поисковикам совсем не "насрать".

Если поступил запрос IMS от клиента, и страница с тех пор не менялась, сервер должен вернуть ответ 304 Not Modified (а не 301 - ошиблись малость).

Автору:

Как вариант решения проблемы, в обработчике IMS на сервере проверять, авторизован ли пользователь, если да, то отдавать страницу, а не ответ 304.

Но опять же это не всегда сработает - многое зависит от настроек прокси по пути от сервера к клиенту - некоторые могут кешировать намертво опираясь только на значения Last-Modified, и чихая на остальные заголовки и рекомендации RFC. Как-то на одном из виртуальных хостингов столкнулись с вариантом, когда front-end кешировал страницы, выставляя Expires, основываясь на промежутке времени между запросом к странице и ее Last-Modified - они так снижали нагрузку на бекэнде, а клиенты матом ругались от того, что все железно кешировалось, не смотря на Cache-Control и т.п.

Или вообще, разделить (если возможно), части сайта для "общего пользования" (с соответствующими установками LM, обработкой IMS) и "авторизованного пользования" - c полным запретом на кеширование.

По кешированию почитай rfc, и неплохая статья на русском:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13

http://xmlhack.ru/texts/06/doing-http-caching-right/doing-http-caching-right.html

DEKODA:
Принятно. Будем исправлять.

Кстати, а история сохраняется только в текущем сеансе? Зашел сейчас снова - история пустая. Неплохо было бы иметь возможность сохранять историю и между сеансами. Настраивать кол-во результатов на страницу можно во всех больших SE, а у вас - нет. Вобщем, Ваш путь, насколько я понял, в предоставлении пользователям всяких "вкусняшечек" - так что дерзайте, тут есть еще чего подсмотреть/скопировать/напридумывать :)

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

Не совсем понравилось отсутствие привычного постраничного бара.

А так вполне приятственное впечатление, удачи.

Андрюшка:
Нашел вот: http://googleblog.blogspot.com/2007/02/robots-exclusion-protocol.html
...
статье чуть больше года.. изменился принцип с того времени?

В блоге Гугла речь идет о meta-тегах, отвечающих за индексацию:

<META NAME="ROBOTS" CONTENT="NOFOLLOW">

<META NAME="ROBOTS" CONTENT="NOINDEX">

Здесь же речь о теге <noindex>, "понятном" Яндексу и Рамблеру, но "непонятном" Гуглу.

Всего: 137