Подтвердить что ты не робот

Какая разница между инвертированным индексом и простым старым индексом?

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

4b9b3361

Ответ 1

Одним из распространенных способов использования является ... чтобы обеспечить быстрый полнотекстовый поиск.

Два типа обозначают направленность. Через указатель вы переносите вперед, а другой - назад (обратный) через индекс. Это. Здесь нет никакой тайны. В противном случае два типа идентичны, это просто вопрос о том, какая информация у вас , и в результате какая информация вы пытаетесь найти .

Чтобы обратиться к вашему запросу, я не думаю, что есть на самом деле способ узнать, почему использование - это то, чем оно является сегодня. Единственная причина, по которой важно определить, что есть forward, а какая - inverted, состоит в том, чтобы мы все могли поговорить о них, и все знают, в каком направлении мы говорим. Подумайте о терминах "left" и "right": они относительны. Что не имеет значения, за исключением того, что каждый должен согласиться с тем, какой из них "левый", а какой "правильный", чтобы слова имели смысл. Если бы в качестве культуры мы решили перевернуться влево и вправо, тогда у вас была бы такая же проблема, выясняя, что означает "правильный поворот" против "левого поворота", поскольку согласованное значение изменилось. Тем не менее, именование произвольно, поэтому тот, который (сам по себе) не имеет значения - важно то, что мы все согласны по значению.

В своем комментарии, где вы спрашиваете: "Пожалуйста, не просто определяйте термины", вы упускаете точку, и я думаю, вы просто повеситесь на формулировке, когда между ними нет никакой разницы.





В интересах будущих читателей я приведу несколько примеров "вперед" и "инвертированный" индекс:

Пример 1: Веб-поиск

Если вы думаете, что обратный индекс является чем-то вроде обратным к функции в математике, где обратная является специальной вещь, которая имеет другую форму, тогда вы ошибаетесь: это не так.

В поисковой системе есть список документов (страниц на веб-сайтах), где вы вводите некоторые ключевые слова и возвращаете результаты.

A forward index (или просто индекс) - это список документов, и какие слова появляются в них. В примере веб-поиска Google сканирует веб-страницы, строит список документов, выясняя, какие слова появляются на каждой странице.

инвертированный индекс - это список слов и документы, в которых они отображаются. В примере веб-поиска вы предоставляете список слов (ваш поисковый запрос), а Google производит документы (ссылки на результат поиска).

Это оба индекса - это просто вопрос, в каком направлении вы идете. Пересылка осуществляется из документов → to- > words, перевернутое из слов → в → документы.


Пример 2: DNS

Другим примером является поиск DNS (который принимает имя хоста и возвращает IP-адрес) и обратный поиск (который принимает IP-адрес и дает имя хоста).


Пример 3: Книга

Индекс в конце книги на самом деле является инвертированным индексом, как определено вышеприведенными примерами - список слов и где их найти в книге. В книге оглавление похоже на forward index: это список документов (разделов), которые содержатся в книге, за исключением того, что вместо перечисления слов в этих разделах оглавление просто дает имя/общее описание того, что содержится в этих документах (главы).


Пример 4: Ваш мобильный телефон

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

Ответ 2

Они называли его инвертированным только потому, что уже есть передний индекс. Возьмем пример поисковой системы, состоящей из двух частей: первая часть - "веб-искатель и парсер", которые строят индекс из документа в слово, вторая часть - это база данных поиска, которая строит индекс от слова к документу. Из-за того, что существует первый индекс, мы, естественно, называем второй индекс инвертированным индексом.

Если вы называете TOC (Таблица содержимого) книги как индекса, то вы должны называть индекс в конце книги "инвертированным индексом". Или, с другой стороны, вы можете вызвать TOC как инвертированный индекс.

Ответ 3

Существует множество типов индексов. Например, B-tree, R-tree, hash... Для разных целей мы должны выбрать правильный индекс.

Инвертированный индекс является особым. Инвертированный индекс обычно используется в полнотекстовой поисковой системе. Используйте инвертированный индекс, мы можем найти слово в документе (или в наборе документов) как можно быстрее. Подумайте о пределе памяти и процессора, другой индекс не может завершить эту работу.

Вы можете прочитать документ lucene для более подробной информации. Это поисковая система с открытым исходным кодом. http://lucene.apache.org/java/docs/index.html

Ответ 4

обычно, говоря об индексе, вы имеете в виду некоторые добавленные вычисления или сохраненные результаты процедур, которые были сделаны для ускорения приложения (например, MySQL или другие СУБД Проконсультируйтесь с MySQL). Индексация также может быть связана с кешированием и т.д.

Инвертированный индекс создает файл со структурой, которая в основном предназначена для (полнотекстового) поиска.

Инвертированный индекс состоит из двух основных файлов:

  • Словарь
  • вхождений

В лексике используются общие слова, извлеченные из текста (конечно, после фильтрации слов черного списка, таких как местоимения). Файл вхождения содержит соединение между словами и документами (word1 появляется в doc1 и doc2, а не в doc3). Он представлен в виде матрицы.

Indexing process - inverted index

В приведенном выше изображении показан процесс создания двух упомянутых файлов.

Если вы заинтересованы в этой проблематике, я могу порекомендовать вам отличную книгу, написанную Рикардо Йатэдом - Современный информационный поиск (Посмотрите на Amazon) - о странице 200, я думаю.

Надеюсь, что это поможет: -)

Ответ 5

нормальность уже удивительно дифференцирована между форвардом и инвертированным индексом, но для вопроса о том, почему один называется прямым индексом, а другой - инвертированным индексом, возможно, это почему они так называются ---

Взяв пример сканирования и индексирования поисковой системы (или указателя построения для книги), прямой индекс может быть создан одновременно при обходе веб-страниц (или чтении книги) или в будущем, Поэтому, если у вас есть 10 веб-страниц для обхода (или 10 глав в книге), вы можете сканировать первую веб-страницу (прочитайте первую главу), а затем составить список слов, которые появляются на веб-странице (слова, которые появляются в этой главе), и продолжить этот процесс для других веб-страниц (другие главы), поэтому к тому времени, когда вы просканировали все 10 веб-страниц (прочитайте все 10 глав), ваш индекс пересылается с каждой веб-страницей (главой), указывающей на список слов, которые он содержит.

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

Это только мои предположения.

Ответ 6

в инвертированных индексах, мы имеем следующий вид:

word1- > список документов, в котором он встречается (отсортированный порядок)

word2- > список документов, в котором он встречается (отсортированный порядок)

Это очень полезно для обработки запросов поисковой системы, поскольку позволяет нам находить документы, в которых происходит слово.

Вы можете использовать контролируемое управление машиной для создания этого инвертированного индекса.

Ответ 7

Еще одно отличие:

Обработка обновлений с помощью инвертированного индекса является дорогостоящим по сравнению с индексом forward.

Прямой индекс легко обрабатывает обновления, отражая изменения только в соответствующем индексе документа, тогда как в инвертированном индексе одно и то же изменение должно отражать в нескольких позициях по инвертированному индексу.