хэш-индекс против инвертированного индекса

Насколько я понимаю, хэш/инвертированный индекс сопоставляет значения/слова с записями/документами соответственно. Однако сложность вставки в хэш-индекс невелика (поскольку он добавляет новую корзину в случае переполнения), но больше в инвертированном индексе (из-за сохранения отсортированного списка идентификаторов документов). Означает ли это, что они по сути одинаковы, за исключением реализации?


person Kushal Bansal    schedule 03.04.2015    source источник
comment
Такое впечатление, что вы говорите о какой-то конкретной технологии, но не называете ее и не ставите тег   -  person leventov    schedule 03.04.2015
comment
Я говорю об использовании хэш-индексов в реляционных базах данных и инвертированных индексов в поиске веб-документов. Посмотрим, смогу ли я добавить их теги.   -  person Kushal Bansal    schedule 06.04.2015


Ответы (2)


Насколько я понимаю, хэш-индекс используется для совершенно другого варианта использования/сценария по сравнению с инвертированным индексом. Хэш-индекс — это просто сопоставление ключа индекса с точным расположением данной строки в памяти (в основном используется для оптимизированных для памяти таблиц в реляционных базах данных), тогда как инвертированный индекс — это фактически сопоставление слова с документами, в которых оно находится. содержится.

Итак, если мы посмотрим на это, слово может содержаться в нескольких документах, и документы будут общими для многих таких слов. Следовательно, многие ключи в случае инвертированного индекса указывают на идентификаторы документов, которые являются общими для многих таких ключей, тогда как в случае хэш-индекса данные, на которые указывают ключи, то есть данные строки, могут быть совершенно не связаны друг с другом.

Таким образом, они не совпадают, поскольку относятся к совершенно не связанным сценариям и реализуются совершенно по-разному.

Для получения дополнительной информации об инвертированном индексе вы можете обратиться к сообщению здесь: BigData: инвертированный индекс

person Abhishek Jain    schedule 28.09.2015

Инвертированный индекс — это структура данных, которая сопоставляет содержимое (например, маркеры) с их расположением в документах. Основное преимущество инвертированного индекса заключается в том, что для поиска интересных документов не нужно просматривать всю коллекцию данных.

Рассмотрим книгу. Индекс в конце является примером инвертированного индекса. Но это не хэш-индекс.

Хэш-индекс — это инвертированный индекс, реализованный с использованием хеш-таблицы. Это изображение показывает, как они хранят данные:

введите здесь описание изображения

Для реализации инвертированных индексов можно использовать и другие структуры данных, например деревья. Двоичные деревья можно использовать, но они часто слишком упрощены, поэтому вместо них используются rb-деревья или b-деревья. Индексы на основе дерева немного сложнее понять, поэтому изображения не очень помогают. У них есть свойства, которые делают их более предпочтительными, чем индексы на основе хэшей, когда у вас есть большие объемы данных, например, их легче обновлять и они имеют лучшую производительность в худшем случае.

person Björn Lindqvist    schedule 19.01.2019