open atlas
↑ К треку
Data engineering DATA · 06 · 08

Полнотекстовый поиск: тест на свободное припоминание

Промпты на свободное припоминание по всему юниту поиска. Сначала ответь своими словами, затем открой модельный ответ и сравни со стержнем юнита.

DATA Senior ◷ 13 min
Уровень
ОсновыJuniorMiddleSenior

Припоминание бьёт перечитывание. На каждый промпт скажи или запиши полный ответ по памяти до того, как откроешь модельный — именно усилие припоминания превращает идеи юнита в то, что можно применить под давлением.

Цель

Реконструируй ключевые механизмы юнита — inverted index (инвертированный индекс: каждый термин указывает на список id содержащих его документов), конвейер анализа и его правило паритета, BM25 и его ручки, выбор Postgres-vs-движок и операционные ловушки — не подглядывая в урок.

Вспомните перед уходом
  1. 01
    Почему LIKE '%term%' никогда не может быть поиском и какие две разные проблемы full-text search решает вместо него?
  2. 02
    Опиши inverted index и что делает запрос быстрым на нём независимо от размера корпуса.
  3. 03
    Что делает анализатор и почему один и тот же анализатор должен работать при индексировании и при запросе?
  4. 04
    Объясни, почему поиск перешёл от TF-IDF к BM25 и что управляют ручки k1 и b.
  5. 05
    Когда Postgres tsvector/GIN — правильный выбор по умолчанию, что толкает к выделенному движку и как выбрать GIN vs GiST внутри Postgres?
  6. 06
    Что значит 'near-real-time' для выделенного движка и почему надо проектировать за read-алиасом с первого дня?
Итог

Если ты смог реконструировать каждый ответ по памяти, ты держишь стержень юнита: LIKE проваливается и в поиске, и в ранжировании, inverted index делает поиск dictionary lookup, конвейер анализа решает, что такое терм, и его правило паритета не подлежит обсуждению, BM25 насыщает term frequency и нормализует длину, чтобы всплывали полезные документы, Postgres GIN — правильный выбор по умолчанию, пока facets/fuzziness/масштаб не толкнут к выделенному движку, а near-real-time refresh плюс reindex из-за неизменяемых токенов — это причина строить за read-алиасом с самого начала. Теперь, когда в production сломается поисковая фича, ты можешь отследить сбой до конкретного слоя — токенизация, структура индекса, скоринг или консистентность — не гадая наугад.

Что-то непонятно?

Задай вопрос по этому уроку. Вопросы анонимны и попадают напрямую автору — урок станет лучше.

хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.