GithubHelp home page GithubHelp logo

skilldip's Introduction

Project "Skilldip"

Описание

Проект "Skilldip" представляет собой приложение для эффективного поиска в файлах, которые очень редко изменяются. Это приложение идеально подходит для сценариев, где необходимо быстро искать данные в большом количестве статичных файлов. Первый запуск приложения занимает некоторое время, так как происходит индексация файлов, но последующие поисковые запросы выполняются очень быстро, с незначительным изменением времени выполнения при изменении запроса.

Сборка и Установка

Подготовка

Для начала необходимо создать папку build, которая будет использоваться для сборки проекта:

mkdir build
cd build

Конфигурация

Для конфигурации проекта используйте cmake, указав путь установки через параметр -DCMAKE_INSTALL_PREFIX. Если вы хотите выключить сборку тестов, используйте -DBUILD_TESTS=OFF.

cmake -DCMAKE_INSTALL_PREFIX=/путь/установки -DBUILD_TESTS=OFF ..

Сборка

Для сборки проекта в linux выполните следующие команды:

cmake ..
make

Для сборки проекта в windows выполните следующие команды:

cmake ..
cmake --build .

После завершения процесса сборки, в той же директории, что и исполняемый файл, вы обнаружите два ключевых конфигурационных файла: requests.json и config.json. Эти файлы имеют важное значение для настройки функциональности поиска приложения под ваши конкретные требования.

config.json: Определение путей для поиска и параметров

Файл config.json предназначен для указания путей к текстовым файлам, в которых будет осуществляться поиск, а также других параметров конфигурации.

{
    "config": {
        "max_responses": 5,
        "name": "Diplom",
        "version": "1.0.0"
    },
    "files": [
       	"./tests/file/Biggers.txt",
        "./tests/file/Britannica.txt",
        "./tests/file/Dzhordan.txt",
        "./tests/file/ff.txt",
        "./tests/file/odu.txt"
       
    ]
}

requests.json: Указание поисковых запросов

Модифицируя массив "requests", вы можете настроить поисковую систему на поиск конкретной информации в выбранных документах, делая ее мощным инструментом для извлечения актуальных данных на основе ваших запросов.

{
    "requests": [
	"become the modern standard",
	"some words..",
	"silicate mineral content"
	]
}

По завершении работы поискового движка результаты его работы будут записаны в файл answers.json. Этот файл будет содержать информацию о дате и времени выполнения поиска, а также собственно результаты поиска — список файлов с указанием степени их релевантности заданным запросам. Формат файла answers.json представляет собой JSON-объект с двумя ключами: "data" и "answers".

"answers":

Это объект, ключами которого являются пути к текстовым файлам, обработанным поисковым движком, а значениями — числа, отражающие степень релевантности файла к заданным поисковым запросам. Числовые значения релевантности могут быть интерпретированы как мера того, насколько содержание файла соответствует интересам пользователя, выраженным в его запросах.

{
    "data": "2024-03-01 17:14:01",
    "answers": {
        "./tests/file/Britannica.txt": 1.0,
        "./tests/file/Dzhordan.txt": 0.13411457645386773,
        "./tests/file/ff.txt": 0.0434826254418268,
        "./tests/file/odu.txt": 0.03722176138975332,
        "./tests/file/Biggers.txt": 0.025318194546443986
    }
}

Для запуска приложения с указанием ограничения по количеству задействованных потоков для работы движка, используйте следующую команду в терминале или командной строке, где n — это число, определяющее максимальное количество потоков:

./Skilldip n

Здесь: ./Diplom — это исполняемый файл вашего приложения. Предполагается, что вы находитесь в директории с этим файлом, или он доступен в вашем пути выполнения. n — это аргумент командной строки, который вы передаете в программу, и который должен быть целым числом, указывающим на максимальное количество потоков, которые могут быть использованы движком приложения.

Запуск Тестов

запуск google test

ctest

или мои тесты

T1 - тесты на ошибки

T2 n- тесты потоков, где n количество потоков

./SkilldipTests
./SkilldipTests T1   
./SkilldipTests T2 22

Использование

Благодарим за использование нашего приложения!

skilldip's People

Contributors

ejefix avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.