№32: Пошукова система Github

Опівночні Балачки

Mar 16 2023 • 35 mins

🔞 Тут будуть матюки 🔞

Робочі посилання і коментарі в каналі https://t.me/midnight_chatter

  • 0:00-2:50 Intro. Спеціалізовані і генералізовані системи пошуків.
  • 2:51-9:12 Чому у Github була найгірша система пошуку? Натягуємо Elastic на код, який не є натуральною мовою. BM25 “на пальцях”. Ну і неймдропаємо Tf-Idf
  • 9:13-12:26 Повертаємося до оригінального блогпосту. Як весь код вліз в 25Тб? І інші цифри для оцінки масштабу розміру пошукової бази
  • 12:27-15:02 Які кола мікросервісів проходить ваш код перед тим, як потрапити в видачу пошуку? Самописні бази на такому швидкому і безпечному Rust, а також ліричні відступи з шеймінгом людей за спадок на Golang
  • 15:03-22:26 Що в цій базі? Інвертовані індекси, щоб не лупати днями всі документи в циклі. Триграми з прикладами “📃” ➡️👨‍⚕️,うく,💦. Як ділити величезний індекс по різних серверах? Трохи про шардінг, але може краще почитайте “кабанчика”. PGTune
  • 22:26-25:24 Як відбувається безпосередньо пошук?
  • 25:25-30:17 Невеликі, здавалося б, оптимізації, які значно покращували все: мінімальне остовне дерево, k-мердж списків, … Зато за 36 годин все переіндексовують з нуля, як треба буде
  • 30:18-34:25 На чому все це крутиться? І навіщо взагалі треба пошук по коду? Даєш ReversoContext для коду!
  • 34:26-35:40 Outro

Долучайтесь до наших соцмереж:

Музика: https://www.streambeats.com/ | @stasgavrylov