Как спроектировать search engine?

Senior
288 просмотров
AFK Offer AI

Поисковая система состоит из трёх частей: crawling, indexing, serving. Crawler обходит страницы, скачивает контент. Indexer строит inverted index — маппинг "слово → список документов". Search-сервер принимает запрос, токенизирует, ищет в индексе пересечение множеств документов по словам. Ранжирование — TF-IDF, BM25 или нейросетевые эмбеддинги. Индекс шардируется по документам. Для автокомплита — trie или prefix-индекс. Для typo tolerance — edit distance или n-gram индекс. В Go можно использовать Bleve для прототипа.

Следующий вопрос

Как реализовать rate limiter через каналы?