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