2010-04-17 3 views
4

Если мы хотим найти запрос типа «t1 t2 t3» (t1, t2, t3 должен быть поставлен в очередь) в инвертированной структуре индекса, , какие способы мы должны делать?Как искать фразовые запросы в структуре инвертированного индекса?

1-Сначала мы ищем термин «t1» и находим все документы, содержащие «t1», а затем выполняем эту работу для «t2», а затем «t3». Затем найдите документы, в которых позиции «t1», «t2» и «t3» находятся рядом друг с другом.

2-Сначала мы ищем термин «t1» и находим все документы, содержащие «t1», а затем во всех найденных документах мы ищем «t2», а затем, в результате этого, находим документы который содержит «t3».

У меня есть полный инвертированный индекс. Я хочу знать, какие пути выше оптимизированы, (1) или (2)?

спасибо большое.

ответ

4

Как wikipedia записи хорошо объясняет,

Есть два основных варианта инвертированных индексов: Уровень записи инвертированного индекс (или индекс инвертированного файла или просто инвертированного файл) содержит список ссылок на документы для каждого слова . Уровень инвертированного индекс слова (или полного инвертированного индекса или инвертированного список) дополнительно содержит позицию каждое слово в документе. Последняя форма предлагает больше функциональности (например, поиск фраз), но для этого требуется больше времени и пространства.

Поскольку вы не говорите нам, какой вариант у вас есть, мы не можем точно ответить на ваш вопрос точно, но думать о каждой возможности поможет.

Для открытия и поиска документов обычно требуется дорогостоящая операция, если только ваши документы необычно малы, поэтому вы хотите свести к минимуму это - и опция (2) на самом деле не минимизирует ее. Если у вас есть перевернутый список, с опцией (1) вам даже не нужно будет открывать любой документ; если у вас есть только инвертированный файл, вам неизбежно придется открывать документы и сканировать их (так как в противном случае вам не хватает информации для подтверждения смежности слова) - но по крайней мере с опцией (1) вы минимизируете количество документов, которые у вас есть открывать и сканировать (только те, которые находятся на пересечении списков документов, содержащих каждое слово).

Итак, в любом случае вариант (1) является более перспективным (если только ваши документы не являются очень маленькими).

Смежные вопросы