Skip to content

Финальный проект: поисковый сервер

Notifications You must be signed in to change notification settings

EshUno/cpp-search-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

Поисковая система

Ищет документы по запросам и ранжирует их по TF-IDF. Поддерживаются минус-слова (слова, документы с которыми исключаются из выдачи), стоп-слова(слова, которые исключаются из документов при добавлении и не учитываются в дальнейшем), очередь запросов и многопоточный режим работы.

Функционал класса SearchServer

  • Конструктор со списком стоп-слов, создающий поисковый сервер.
  • Метод AddDocument для добавления новых документов в поисковый сервер.
  • Метод FindTopDocuments для поиска и возврата заданного числа документов с наибольшей релевантностью.
  • Метод GetDocumentCount для получения количества добавленных в поисковый сервер документов.
  • Метод GetDocumentId для получения id документов по их позиции.
  • Методы begin, end, возвращающие итераторы на первый и последний хранимые документы.
  • Метод GetWordFrequencies для поучения частот всех слов документа.
  • Метод MatchDocument для получения всех плюс-слов запроса, содержащихся в документе. Слова не дублируются и отсортированы по возрастанию.
  • Метод RemoveDocument для удаления документов из поискового сервера по id.

Функционал класса RequestQueue

Класс отвечает за очередь запросов к поисковому серверу. Позваляет упорядочивать и подсчитывать запросы.

  • Метод AddFindRequest для принятия запросов на поиск.
  • Метод GetNoResultRequests возвращает число запросов за последние сутки, на которые ничего не нашлось.

Функционал класса Paginator

Класс отвечает за разделение результатов запроса на страницы заданного размера. Создается при вызове внешней функции Paginate.

Методы ProcessQueries и ProcessQueriesJoined предназначены для параллельной обработки нескольких запросов, различаются формой представления возвращаемых значений. Класс ConcurrentMap тоже используется для распаралеливания.

About

Финальный проект: поисковый сервер

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published