Если мы хотим искать запрос как этот "t1 t2 t3" (t1, t2, t3 должен быть поставлен в очередь) в структуре инвертированного индекса, какие пути мы должны сделать?
1 Первое мы ищем слово "t1" и находим все документы, который содержит "t1", затем сделайте эту работу для "t2" и затем "t3". Затем найдите документы, что положения "t1", "t2" и "t3" друг рядом с другом.
2 Первых мы ищем слово "t1" и находим все документы, который содержит "t1", затем во всех документах, которые мы нашли, мы ищем "t2" и затем в результате этого, мы находим документы, который содержит "t3".
У меня есть полный инвертированный индекс. Я хочу знать, какие пути выше оптимизирован, (1) или (2)?
большое спасибо.
Как хорошо объясняется в статье википедии ,
Есть два основных варианта инвертированных индексов : A уровень записи инвертированный индекс (или инвертированный индекс файла или просто инвертированный файл ) содержит список ссылки на документы для каждого слова . Инвертированный индекс уровня слов (или полный инвертированный индекс или инвертированный список ) дополнительно содержит позиции {{1 }} каждое слово в документе. Последняя форма предлагает больше функций (например, поиск по фразам), но для ее создания требуется больше времени и места.
Поскольку вы не говорите нам, какой у вас вариант, мы не можем точно ответить на ваш вопрос, но обдумывание каждого варианта поможет.
Открытие и поиск документов обычно является дорогостоящей операцией, если только ваши документы не слишком малы, поэтому вы хотите минимизировать это - а вариант (2) на самом деле не минимизирует его. Если у вас есть инвертированный список , с опцией (1) вам даже не нужно будет открывать любой документ; если у вас есть только инвертированный файл , вам неизбежно придется открывать документы и сканировать их (так как в противном случае у вас не будет информации для подтверждения смежности слов) - но, по крайней мере, с опцией (1) вы минимизируете число документов, которые необходимо открыть и отсканировать (только те, которые находятся на пересечении списков документов, содержащих каждое слово).
Таким образом, в любом случае вариант (1) является более многообещающим (если только ваши документы не слишком малы).