[#] [Перевод] Реализация поискового движка с ранжированием на Python (Часть 2)
habrabot(difrex,1) — All
2015-07-31 14:30:06


_В [предыдущей части][1] мы построили индекс, но мы всё ещё не можем выполнять запросы по нему. Про это я и расскажу в этой статье._

#### Выполнение запросов к индексу

Итак, есть два типа запросов, которые мы хотим обработать: стандартные запросы, где по крайней мере одно из слов в запросе появляется в документе и запросы с фразой, где все слова запроса встречаются в документе в том же порядке. Однако, прежде чем мы начнем, я бы рекомендовал обработать запрос так же, как мы обрабатывали документы, когда строили индекс, преобразовывая все слова, делая все буквы строчными и удаляя знаки препинания. Я не буду вдаваться в это, так как это тривиально, но это должно быть сделано перед выполнением запроса. _Примечание: во всех примерах кода ниже, каждая функция будет принимать в переменную с именем ‘invertedIndex’, которая генерируется в предыдущей части статьи._ Мы собираемся реализовать стандартные запросы в первую очередь. Простой способ реализовать их — разбить запрос на слова (маркеры, как описано выше), получить список за каждое слово, документы в которых они встречаются, а затем объединить все эти списки. Вот как мы выполним запрос для одного слова: [Читать дальше →][2]

[1]: http://habrahabr.ru/post/263823/
[2]: http://habrahabr.ru/post/263913/#habracut