Как искать запросы фразы в структуре инвертированного индекса?

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

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

2 Первых мы ищем слово "t1" и находим все документы, который содержит "t1", затем во всех документах, которые мы нашли, мы ищем "t2" и затем в результате этого, мы находим документы, который содержит "t3".

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

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

5
задан Mehdi Amrollahi 18 April 2010 в 05:30
поделиться

1 ответ

Как хорошо объясняется в статье википедии ,

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

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

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

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

5
ответ дан 14 December 2019 в 19:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: