Inverted inxed is a data structure that is widely used for search optimization. This project is just a simple implementation of inverted index written in C++ that was made as a part of coursework of "concurrency & parallelism" university subject.
This repo contains implementations of concurrent inverted index along with all required data structures and interface for interacting with it build on top of network sockets. Brief modules overview:
collections
- concurrent-safe inverted index and related data structuresfiles_to_index
- text files that are used to build the indexinterface
- client and server implementationsnetwork
- network layer code based on sockets, simple text-based communication protocolroutines
- multithreaded algorithm of file indexingutils
- utility functions :)
In order to try the software locally you need to have gcc
and cmake
packages
installed.
Clone the repo
git clone https://github.com/kokokojo2/inverted-index-server
Navigate inside the project
cd inverted-index-server
Create make build files
cmake .
Build executables
make
Run an inverted-index server server
program that builds the index concurrently
and starts a simple network server
./server
Run a client
, that can talk with server
to search words
./client