TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Wazowski Recommends

7 Nov 2024, 16:42

Открыть в Telegram Поделиться Пожаловаться

После неудачи с первым проектом мы решили заняться чем-то ещё. И снова у Ильи Сегаловича возникла прекрасная идея: давайте сделаем специальный поиск по стихотворениям! Обычный поиск здесь не очень хорошо справляется, потому что стихи нужно искать в меньшей степени по смыслу, а в большей — по совпадению последовательности слов. И так зародился проект Стихолюб.

С этим проектом у нас пошло сильно лучше, потому что его можно было писать отдельно от существующей кодовой базы. А так как мы были группой исследовательских проектов, свой исследовательский прототип мы решили писать на том языке, который и я, и Макс знали лучше всего. На C#.

За полгода получилось сделать отличный поиск стихов, в котором были и расстояние Левенштейна, и суффиксные массивы, и алгоритм Ахо-Корасик, и фильтр Блума. И это даже неплохо работало.

И вот в конце апреля 2009 приходит к нам снова Сегалович и говорит:
— Слушайте, тут такое дело... 6 июня юбилей Пушкина. Очень хочется к этой дате что-то прикольное запустить. Нельзя ли теперь быстро ваш прототип превратить в продакшен?

Мы слегка удивились.

Я работал на четверть ставки.
Впереди меня ждала сессия.
C++ я знал очень плохо.

Учитывая это, быстро всё переписывать на православные технологии мы всё-таки отказались.

И тогда Сегалович решил договориться со всеми, чтобы проект выкатили в продакшен прямо в таком виде. На C#. На виндовых серверах.

От одного из виндовых админов мы получили новое прозвище. «Эти стихоблуды опять чего-то странное делают», — написал он на общую рассылку.

А руководитель качества поиска Денис усмехнулся:
— Вы что, с ума сошли? На C#? Как вы вообще собираетесь 5K RPS держать на своём дот-нете?

Когда провели нагрузочное тестирование, наш поиск выдержал и 10K, а дальше закончились патроны. 🤷‍♂️

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

Но перед самым запуском нас встретила ещё пара неожиданных проблем.

Во-первых, по соображениям безопасности, нельзя было где-либо показывать наружу, что поиск работает на винде. Поэтому Максу пришлось быстро патчить какую-то виндовую библиотеку, чтобы IIS притворялся nginx-ом в каких-то заголовках.

А во-вторых, surprise-surprise, оказывается, для такого колдунщика нужно не просто научиться находить самое подходящее стихотворение в базе, но и сделать классификатор, который бы говорил, показывать колдунщик или мы нашли мусор.

Я как раз прослушал новый курс в ШАДе под названием Machine Learning. Мы собрали ответы нашего поиска и разметили их на мусор. Получили целых 300 примеров! И дальше я несколько дней пытался обучить на этом SVM с разными фичами. И feature selection написал. Но почему-то всё равно получилось плохо.

В итоге наш продакт-менеджер Рост просто сам придумал decision tree, с которым мы и запустились.

Это был единственный раз, когда я работал несколько ночей подряд.

А ещё, за пару дней до запуска к нам пришли Антон с ником pg@ и его руководитель и сказали:
— Ребят, вы, конечно, молодцы. Но мы не хотим потом поддерживать ещё один поиск, да ещё на C#.

И после запуска мы наняли в команду ещё одного разработчика Алексея, вместе с которым я всё-таки переписал это на C++, заодно и подучив язык хоть немного. Алексей потом стал даже преподавать C++ в ШАДе.

А переписанный Стихолюб проработал ещё несколько лет. Пока его не отключили за ненадобностью.

#lifestories

2.5k 0 34 23 97
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot