Британский программист за выходные создал простой поисковый каталог интернет-ресурсов на полмиллиона страниц на интересующую его тематику. Работающей локально системе с веб-интерфейсом достаточно 1 ГБ на диске. На облачный GPU ушло $10.
14 Августа 2026 12:27 14 Авг 2026 12:27 |
Британский программист Алекс Морли-Финч (Alex Morley-Finch) из Ноттингема создал простую поисковую систему для собственных нужд, пишет The Register.
Поисковый индекс содержит информацию о 560 тыс. страниц в интернете. Он сформирован при помощи Marlin, инструмента с открытым исходным кодом, который Морли-Финч построил самостоятельно, потратив всего несколько дней и около $10 – на аренду GPU в облаке. Система работает локально и занимает менее 1 ГБ на жестком диске.
Исходный код Marlin, написанный на язык программирования TypeScript, опубликован на GitHub, распространяется на условиях свободной лицензии MIT. Автор не скрывает, что при создании инструмента использовались ИИ-помощники, заранее предупреждает об отказе от ответственности за результаты использования результатов своего труда.
Локальный каталог страниц с инди-контентомКак объясняет сам Морли-Финч, целью проекта было создание поискового движка, «заточенного» под сферу его личных интересов. По его задумке, индекс должен был включать информацию о небольших сайтах и домашних страничках, размещенных в Сети, блогах, инди-журналах, причудливых арт-проектах, софте, который разрабатывается и поддерживается силами единственного человека и прочих любопытных проектах небольшого масштаба.
Программист за выходные создал своими руками простой поисковик
Программист на выходе рассчитывал получить нечто совсем простое «с краулером, просматривающем только главные страницы сайтов, небольшой локальной языковой моделью, которая изучает каждую из них, присваивает имя, описание длинной в два-три предложения и набор тегов». По словам Морли-Финча, для решаемых им задач не было нужды в такой функциональности, как сканирование IP-адресов, применения NoSQL-СУБД Redis для размещения данных в оперативной памяти. Добавлять возможность сохранения HTML-страниц, проиндексированных поисковиком, целиком также не планировалось.
Как это работаетПостроение индекса осуществляется при помощи Marlin, работа которого распределена между четырьмя процессами.
Процесс-сборщик (Fetcher) поглощает первоначальный список адресов сайтов для индексации (его должен составить сам пользователь инструмента), а затем сам идет по внешним ссылкам, размещенным на этих сайтах, попутно индексируя связанные страницы.
Обработчик (Worker) обращается к локальной языковой модели, совместимой с OpenAI (через LM Studio), «скармливает» ей содержимое полученное сборщиком. Модель его анализирует и в результате генерирует набор метаданных, характеризующих проиндексированную веб-страницу.
Распорядитель (Steward) перед добавлением в базу данных поисковика проверяет сгенерированные метаданные и отсекает несоответствующие заданным критериям качества, например, содержащие спам.
Программистом также реализован API (прикладной интерфейс) и веб-интерфейс, позволяющий вести мониторинг работы системы, а также, собственно, вести поиск по сформированному индексу – возможность, ради которой все и затевалось.
Трудности разработкиПервую версию движка Морли-Финч набросал всего за несколько часов. На первый взгляд все, индексатор функционировал нормально, как и было задумано, но результатами его работы программист остался не удовлетворен. Индекс формировался на основе веб-страниц не из того сегмента интернета, на который рассчитывал разработчик. Вместо небольших сайтов в выборке доминировали корпоративные веб-ресурсы и документация – более 90% проиндексированного можно было отнести к этим категориям.
Вместо принудительного исключения неподходящих адресов Морли-Финч выбрал более гибкий подход, предполагающий динамическую оценку приоритета страниц на основе весов при формировании очереди на индексацию. Соответствующие предпочтениям программиста страницы таким образом индексировались в первую очередь, а наименее интересные – отправлялись далеко в конец очереди.
Для выполнения этой ресурсозатратной процедуры программист арендовал облачный GPU. Завершенной процедуру Морли-Финч счел, когда количество страниц в индексе перевалило за 560 тыс. Аренда обошлась ему примерно в $10.
Еще одна серьезная проблема, с которой разработчик столкнулся в процессе – проблема категоризации и присвоения тегов обнаруженного контента. Ошибкой оказалось отдать все это на откуп языковой модели. Она самостоятельно «придумала» 671 отдельную категорию, во многие из которых попала всего лишь одна веб-страница, а также 121 тыс. тегов, более половины из которых были задействованы единожды.
Морли-Финчу пришлось написать утилиту для объединения похожих категорий и тегов, в избытке сгенерированных моделью. Подобное поведение модели натолкнуло разработчика на мысль о плохой масштабируемости, созданной им системы.
Тем не менее, по его мнению, шероховатости Marlin не должны отпугивать готовы потратить выходные на его доработку. Разработчик считает, что получить приемлемый результат при помощи результата можно, затратив на это пару свободных дней. Сопутствующие финансовые расходы на построение собственного локального поисковика нельзя называть неприемлемыми.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Устав бороться с поисковыми гигантами, программист за выходные с нуля написал собственный интернет-поисковик, потратив $10 | 0 | 16.96 | 14-08-2026 |
| 2 | Устав бороться с поисковыми гигантами, программист за выходные с нуля написал собственный интернет-поисковик, потратив $10 | 0 | 16.96 | 14-08-2026 |
| 3 | Как гуманитарий за 2 месяца с нуля RAG систему построил, или Парсинг PDF по-хардкору | 0 | 10.58 | 16-02-2026 |
| 4 | Интеграция с Яндекс.Облаком и другими сервисами SEO | 0 | 5 | 07-07-2026 |
| 5 | Ручная ищейка. Делаем свой Google для локальной сети | 0 | 7 | 12-08-2025 |
| 6 | Как я перебрал 2377 вакансий за неделю и исследовал рынок труда под мои уникальные хотелки | 0 | 7.98 | 05-08-2026 |
| 7 | Простые проблемы с RAG, которые мы решали в ИИ-стартапе | 0 | 12.57 | 12-03-2026 |
| 8 | Из немыслимого в элементарное: парсинг сайта спортпита на Python без бэкграунда программиста | 0 | 8.09 | 08-08-2026 |
| 9 | Онлайн-проект по поиску пропавших солдат Великой Отечественной войны заработал в России | 0 | 0 | 05-05-2020 |