This repository provides a project for creating an inverted index. The project consists of three logical parts:
- a class library that allows you to create an inverted index and tests for it;
- a console application for testing the speed of work and checking the correctness of the parallel algorithm;
- a client-server application for demonstrating the work of the library.
namespace Indexing.BL
- base library of inverted indexing;namespace Indexing.BL.Tests
- unit test for librarynamespace Indexing.TimeAnalytics
- console application with performance testnamespace Indexing.Application
- library with common classes for client and servernamespace Indexing.Application.Client
- client part of client-server applicationnamespace Indexing.Application.Server
- server part of client-server application
- no dependencies
-
Indexing.BL
coverlet.collector
Microsoft.NET.Test.Sdk
xunit
xunit.runner.visualstudio
-
Indexing.BL
-
Newtonsoft.Json
-
Indexing.BL
Indexing.Application
-
Indexing.BL
Indexing.Application
.NET CLI must be installed to build and run the project.
Use $ git clone https://github.com/VadymKolesnyk/indexer.git
command in terminal or download .zip archive by this link
- Go to the solution folder and run the TimeAnalytics project by command
$ dotnet run --project Indexing/Indexing.TimeAnalytics/Indexing.TimeAnalytics.csproj
(The project will be compiled and built automatically) - Then you will need to enter the path of the folder whose files will be indexed and performance information will be shown
- First you will need to start the server. You can do this with
$ dotnet run --project Indexing/Indexing.Application.Server/Indexing.Application.Server.csproj -- arg1 arg2
, wherearg1
- number of threads used to create the index andarg2
- path to root directory of files. - Then you will need to wait for the index creation to complete.
- When the server reports that it is running, start the client using the command
$ dotnet run --project Indexing/Indexing.Application.Client/Indexing.Application.Client.csproj
- Then on the client you will need to enter the words you want to find in files.