В предыдущая часть Мы создали индекс, но по-прежнему не можем его запросить.
Об этом я расскажу в этой статье.
Выполнение индексных запросов
Итак, есть два типа запросов, которые мы хотим обработать: стандартные запросы, когда хотя бы одно из слов запроса встречается в документе, и фразовые запросы, где все слова в запросе появляются в одном и том же порядке в документ. Однако прежде чем мы начнем, я бы рекомендовал обработать запрос так же, как мы обрабатывали документы при построении индекса: преобразовать все слова, сделать все буквы строчными и удалить знаки препинания.Я не буду вдаваться в подробности, поскольку это тривиально, но это следует сделать до выполнения запроса.
Примечание.
Во всех приведенных ниже примерах кода каждая функция будет использовать переменную с именем invertedIndex, которая была создана в предыдущей части статьи.
Чтобы полностью понять, что происходит ниже, вы можете увидеть окончательный результат на странице GitHub .
Сначала мы собираемся реализовать стандартные запросы.
Простой способ их реализации — разбить запрос на слова (токены, как описано выше), получить список для каждого слова, документы, в которых они встречаются, а затем объединить все эти списки.
Вот как мы будем запрашивать одно слово:
Теги: #Поисковые технологии #поисковая система #поисковые алгоритмы #Google #перевод #Поисковые технологии #pythondef one_word_query(self, word):
-
Памятник Платону Щукину
19 Oct, 24 -
Древности: Nokia E90, Последний Коммуникатор
19 Oct, 24 -
Это 1.0.8
19 Oct, 24