Hacker News Digest

17 ноября 2025 г. в 03:52 • karboosx.net • ⭐ 240 • 💬 69

OriginalHN

#search-engines#databases#sql#tokenization#information-retrieval#google#microsoft#openai

Building a Simple Search Engine That Works

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

Токенизация — ключевой процесс, разбивающий текст на searchable части. Реализованы разные стратегии: WordTokenizer (вес 20) для точных совпадений, который нормализует текст и фильтрует короткие слова, и PrefixTokenizer (вес 5) для частичных совпадений, генерирующий префиксы слов. Интерфейс TokenizerInterface упрощает расширение функциональности. Вес токенов рассчитывается как произведение веса поля, веса токенизатора и квадратного корня длины токена, что обеспечивает гибкую систему ранжирования результатов.