Инвертированный индекс - это индекс базы данных, в котором хранится сопоставление содержимого, такого как слова или числа, с его местоположениями в базе данных, в документе или наборе документов. Инвертированный индекс предназначен для быстрого полнотекстового поиска.
Чтобы лучше понять, что такое инвертированный индекс и как использовать этот индекс, давайте рассмотрим простой пример с двумя документами:
- Документ №1 с текстом «Рецепт пасты с соусом песто»
- Документ №2 с текстом «Рецепт вкусной пасты карбонара»
Чтобы построить инвертированный индекс, мы должны разбить эти предложения на токены, в нашем случае токены - это слова. После этого токены будут сохранены со ссылками на документы, в некоторых случаях до того, как сохранение токенов может быть преобразовано.
Инвертированный индекс для этих предложений будет выглядеть как эта упрощенная схема:
В этом перевернутом указателе мы можем найти ссылку на документ по токену (слову из текста).
Давайте посмотрим на несколько примеров поисковых запросов:
- Поисковый запрос «рецепт макарон» будет разделен на два токена («макароны» и «рецепт»), после чего ему будет соответствовать инвертированный индекс и вернет оба документа с одинаковой оценкой (оценка - это сходство документа и поисковой фразы; мы рассмотрим оценку позже в этой статье).
- Поисковый запрос «паста карбонара» также даст вам оба документа, но документ №2 будет иметь более высокий балл, чем документ №1. Поскольку в документе № 2 есть оба токена (и «карбонара» и «паста»), а в документе № 1 - только один («макароны» ) токен.
- Поисковый запрос «вкусная карбонара» даст вам только документ №2, потому что в этом документе есть оба токена, а в документе №1 их нет.
Иногда мы можем преобразовать токены перед сохранением и поиском. Наиболее популярные виды трансформации:
- Удаление стоп-слов. Стоп-слова - это самые популярные слова в языке или в вашем наборе данных, которые не имеют семантического веса. Например, в английском языке это могут быть следующие слова of, the, for и т. Д.
- Лемматизация. Лемматизация - это процесс преобразования слова в словарную форму слова бег = › бег , прогулки =› ходить , think =› думать
- Стебель. Stemming - это процесс преобразования слова в корневую форму путем отсечения окончания слова. Это похоже на лемматизацию, но не может обрабатывать случаи с неправильными глаголами, но может обрабатывать слова, которых нет в словаре.
Это все.