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