Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 

Repository files navigation

SearchServer

Поисковой сервер, который обеспечивает поиск документов по ключевым словам и ранжирование результатов по статистической мере TF-IDF. Поддерживает функциональность минус-слов и стоп-слов и имеет возможность работать в многопоточном режиме.

Работа с поисковым сервером

Создание экземпляра класса SearchServer. В конструктор передаётся строка со стоп-словами, которые разделены пробелами или произвольный контейнер (с последовательным доступом к элементам с возможностью использования в for-range цикле)

Добаление документа на сервер. С помощью метода AddDocument добавляются документы для поиска. В метод передаётся id документа, статус, рейтинг, и сам документ в формате строки.

Поиск документов. Метод FindTopDocuments возвращает вектор документов, согласно переданным ключевым словам. Результаты отсортированы по статистической мере TF-IDF. Возможна дополнительная фильтрация документов (по умолчанию фильтрация осуществляется по статусу ACTUAL) по id, статусу и рейтингу (согласно переданному DocumentPredicate). Метод реализован в однопоточной и в многпоточной версии.

Поиск ключевых слов в документе. Метод MatchDocument возвращает кортеж с отсортированным вектором ключевых слов, содержащихся в документе, и статусом документа. В метод передается строка с ключевыми словами и id документа, занесенного в базу поискового сервера. Метод реализован в однопоточной и в многпоточной версии.

Класс RequestQueue реализует хранение истории запросов к поисковому серверу. При этом общее кол-во хранимых запросов не превышает заданного значения. При добавлении новых запросов - они замещают самые старые запросы в очереди.

Класс Paginator обеспечивает постраничный вывод документов. В функцию Paginate передается вектор документов (результат FindTopDocuments) и количество документов на одной странице.

Сборка

Сборка с помощью любой IDE либо сборка из командной строки.

Требования к сборке

Компилятор С++ с поддержкой стандарта C++17 или новее.

About

Поисковый сервер. Реализует поиск документов по ключевым словам.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages