EMZETT.
Увійти

Коротко: Інвертований індекс зіставляє кожному слову список документів, в яких воно трапляється. Він робить повнотекстовий пошук швидким.

Докладніше: Замість того щоб під час кожного пошуку переглядати всі тексти, слово шукають в індексі, як у предметному покажчику наприкінці книги.

Подробиці

  • Структура: слово → [ID документа, ...], часто з частотою та позиціями (для пошуку фраз на кшталт «руда кішка»).
  • Попередня обробка: Приведення до нижнього регістру, розбиття на слова (токенізація), основи слів (стемінг), відкидання стоп-слів.
  • Кілька слів: Списки перетинаються (І) або об’єднуються (АБО). Оскільки вони відсортовані, злиття дуже швидке.
  • Ранжування: Методи на кшталт TF-IDF і BM25 надають більшу вагу рідкісним словам. Див. гібридний пошук.
  • Застосування: Lucene, Elasticsearch, повнотекстовий пошук PostgreSQL (індекс GIN), пошукові системи, поле пошуку вікі.
  • Ціна: Індекс займає місце й має оновлюватися під час змін.

Див. також: Elasticsearch