Сервер-улей
Улей — вход, с которого люди ищут. На нём лежат индекс, модель смысла и кабинет оператора. Лёгкая пчела, компьютер без сайта и телефон приносят ему текст. Пишет индекс улей.
Что ставить
Та же программа, что на странице Скачать ноду. В Windows это mds.exe, в Linux — mds. При первом запуске полная нода забирает модель с улья, около 1 ГБ. Ссылки на файл весов на странице загрузки нет.
mds node --listen 0.0.0.0:8080 --seeds urls.txt --follow-external --peers https://beesearch.ru
- В urls.txt — стартовые адреса сайтов, по одному в строке. С них обход находит ссылки и ставит новые адреса в очередь.
- Публичный улей, на который смотрит домен, запускают с
--alone, чтобы он не звонил сам себе. - Второй улей, который входит в ту же сеть, указывает соседа в
--peers. - Для людей этот улей открыт на https://beesearch.ru.
Сколько нужно машине
Один публичный улей — 4 ядра, 8 ГБ памяти и SSD около 100 ГБ. Модель занимает около 1 ГБ из этой памяти. База растёт вместе со страницами, её пишет один процесс. Узкий канал не подходит: с этой машины идут и ответы людям, и обход.
Как это работает с шардами
Шард — сохранённый кусок индекса. Пока улей один, он отвечает всем индексом, который собрал сам. Когда полных нод несколько, запрос идёт к тем, кто держит нужный шард, и не больше чем к трём копиям. Если одна копия отвечает заметно медленнее, улей в этот раз её не ждёт.
Лёгкая пчела, компьютер без сайта и телефон шард не держат и на чужой поиск не отвечают. Они приносят текст, индекс остаётся на улье. Журнал запросов хранится на той ноде, которая ответила, без адреса человека.
Обновление
Полная нода подхватывает новую версию сама, если в сети лежит подписанный файл новее того, что у неё запущен. На странице поиска появляется строка «Нужно обновиться». Пока такого выпуска нет, новую сборку кладут вручную и перезапускают службу. Архив со страницы загрузки сам программу не подменяет.