Ищет документы по запросам и ранжирует их по TF-IDF. Поддерживаются минус-слова (слова, документы с которыми исключаются из выдачи), стоп-слова(слова, которые исключаются из документов при добавлении и не учитываются в дальнейшем), очередь запросов и многопоточный режим работы.
- Конструктор со списком стоп-слов, создающий поисковый сервер.
- Метод
AddDocument
для добавления новых документов в поисковый сервер. - Метод
FindTopDocuments
для поиска и возврата заданного числа документов с наибольшей релевантностью. - Метод
GetDocumentCount
для получения количества добавленных в поисковый сервер документов. - Метод
GetDocumentId
для получения id документов по их позиции. - Методы
begin, end
, возвращающие итераторы на первый и последний хранимые документы. - Метод
GetWordFrequencies
для поучения частот всех слов документа. - Метод
MatchDocument
для получения всех плюс-слов запроса, содержащихся в документе. Слова не дублируются и отсортированы по возрастанию. - Метод
RemoveDocument
для удаления документов из поискового сервера по id.
Класс отвечает за очередь запросов к поисковому серверу. Позваляет упорядочивать и подсчитывать запросы.
- Метод
AddFindRequest
для принятия запросов на поиск. - Метод
GetNoResultRequests
возвращает число запросов за последние сутки, на которые ничего не нашлось.
Класс отвечает за разделение результатов запроса на страницы заданного размера. Создается при вызове внешней функции Paginate
.
Методы ProcessQueries
и ProcessQueriesJoined
предназначены для параллельной обработки нескольких запросов, различаются формой представления возвращаемых значений. Класс ConcurrentMap
тоже используется для распаралеливания.