Skip to content

hexmar/multi-search

Repository files navigation

multi-search

Общая информация

Чтобы добавить новую поисковую систему необходимо создать в проекте MultiSearch.Domain класс с имплементацией интерфейса ISearchEngine. А затем создать экземпляр этого класса в массиве searches в классе SearchService.

  • ISearchEngine.GetDataAsync осуществляет получение данных из поисковой системы в формате html.
  • ISearchEngine.ParseData осуществляет преобразование сырых данных в доменные модели.

Для запуска приложения должен быть установлен LocalDB. Либо, если установлен SQL Server, необходимо изменить connection string в appsettings.json.

Принцип работы

После получения запроса приложение создаёт потоки в количестве имеющихся поисковых систем и запускает их. Для одноврменной отправки запросов используется барьерная синхронизация. После получения ответа самый быстрый поток сообщает об этом главному потоку. Главный поток преобразует html-данные в доменные модели, сохраняет их в базу данных и отправляет клиенту.

Поиск по базе данных осуществляет поиск подстроки в колонке Title.

About

Test task for Murano

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published