Rambler ввел в строй новую архитектуру поиска

0
224 views

Поисковая система Rambler ввела в строй новую версию поисковой машины, которая принципиально отличается от предыдущей по двум основным параметрам. Во-первых, увеличилась скорость поиска; во-вторых, появилась возможность оперативного обновления поискового индекса. Если раньше индексная база обновлялась в среднем раз в месяц, то теперь, благодаря новой архитектуре поисковой системы, обновление может происходить каждый день, и даже несколько раз в день.

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

С момента создания поисковой машины и до недавнего времени индекс состоял из двух больших частей, одна из которых использовалась для поиска, а другая – для формирования цитат и подсветки найденных слов запроса. Копии этих частей размещались соответственно на поисковых и цитирующих серверах. Такая архитектура позволяла поднимать по запросу все имеющиеся данные и проводить поиск и ранжирование, опираясь на полную информацию о документах. Однако обновление индексной базы на всех серверах одновременно было непростой и трудоемкой процедурой. Кроме того, с ростом интернета увеличивался и размер индекса, что приводило к замедлению поиска. Поэтому было принято решение изменить структуру поисковой системы.

В новой версии индексная база разбита на восемь частей. Семь из них представляют собой поисковые индексы, каждый из которых построен по седьмой части Рунета. Ежедневно обновляется одна из частей индекса. Таким образом, с момента скачивания страницы роботом до ее появления в поиске проходит от 2 до 8 дней.

Восьмая часть индекса представляет собой “быструю базу”, построение которой занимает два часа. В быструю базу входят страницы, содержащие счетчик Тор100. Каждый раз, когда в рейтинге Тор100 появляется новая страница, которой еще нет в индексе, она отправляется в очередь на обработку. Перед обработкой страницы фильтруются, из них отбираются наиболее посещаемые. В настоящее время быстрая база обновляется два раза в сутки, однако в ближайшее время планируется обновлять ее чаще.

Поиск по всем восьми базам осуществляется параллельно, результаты поиска объединяются. За счет этого поиск происходит в несколько раз быстрее по сравнению с поиском по монолитной индексной базе. Каждая из семи частей основной базы размещена на семи серверах. Такое распределение обеспечивает устойчивость и стабильность работы системы при повышении нагрузки или авариях. В подобных случаях из результатов поиска не пропадают соответствующие части индекса, так как поток запросов динамически перенаправляется на наименее нагруженные машины.