Инвертированный индекс: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
Dsund (обсуждение | вклад) Нет описания правки |
Dsund (обсуждение | вклад) Нет описания правки |
||
Строка 1:
'''Инвертированный индекс''' ({{lang-en|inverted index}}) - [[структура данных]] в которой для каждого слова коллекции документов в соответствующем [[список|списке]] перечислены все места в коллекции, в которых оно встретилось. Инвертированный индекс используется для поиска по текстам.
==Применение
Опишем как решается задача нахождения документов в которых встречаются все слова из поискового запроса. При обработки однословного поискового запроса, ответ уже есть в инвертированном индексе - достаточно взять список соответствующий слову из запроса. При обработке многословного запроса берутся списки, соответствующие каждому из слов запроса и пересекаются.
Строка 23:
Тогда отработка поискового <code>"what is it"</code> запроса даст следующий результат
<math>\{0,1\} \cap \{0,1,2\} \cap \{0,1,2\} = \{0,1\}</math>.
==Особенности применения в реальных поисковых системах==
В списке вхождений слова в документы помимо id документов обычно также указываются факторы ( [[TF-IDF, папало слово в заголовок или нет и другие]]), которые используются при ранжировании.
Индекс может строится не по всем словоформам, а по леммам (по каноническим формам слов).
[[Шумовые_слова|Cтоп-слова]] можно исключить и не строить для них индекс, считая что каждое из них встречается почти во всех документах корпуса. Для ускорения вычисления пересечений используют эвристику [[skip-pointer]]-ов. При обработки запросов содержащих много слов используют функцию кворума, которая пропускает на следующую стадию ранжирования часть документов в которых встретились не все слова из запроса.
|