Skip to content

About

Yandex.Practicum C++ course project: TF-IDF document search with filtering and parallel processing using Intel TBB.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Search Server

This Yandex.Practicum C++ course project implements document search and ranking with TF-IDF, minus-word filtering, request processing, and parallel execution using Intel TBB.


Features

  • TF-IDF Ranking: Ranks documents by relevance based on Term Frequency-Inverse Document Frequency.
  • Minus-Words Support: Excludes documents containing specific words from search results.
  • Thread-Safe Execution: Utilizes Intel TBB for efficient multi-threaded performance.
  • Flexible Query Handling: Handles multiple queries and efficiently filters relevant results.

Example

Document Database:

 Doc id_1:   white cat and yellow hat
 Doc id_2:   curly cat curly tail
 Doc id_3:   nasty dog with big eyes
 Doc id_4:   nasty pigeon john

Query:

and with -john

Output:

ACTUAL:
{ document_id = 2, relevance = 0.866434, rating = 1 }
{ document_id = 1, relevance = 0.173287, rating = 1 }
{ document_id = 3, relevance = 0.173287, rating = 1 }
BANNED:
{ document_id = 4, relevance = 0.231049, rating = 1 }

Architecture

  • SearchServer owns the document index and ranking logic.
  • ConcurrentMap supports parallel result accumulation.
  • Query-processing helpers execute batches of searches.
  • RequestQueue tracks recent empty-result requests.

Build notes

  • Requires a C++17-compatible compiler and Intel oneTBB/TBB.
  • Source and test helpers are under Search_Server/.
  • The repository does not include a portable project-level build configuration.

About

Yandex.Practicum C++ course project: TF-IDF document search with filtering and parallel processing using Intel TBB.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages