Страницу Назад
Поискать другие аналоги этой работы
1000 Дипломный проект SearchEngine - Поисковый движок -2022 годID: 237576Дата закачки: 03 Июля 2023 Продавец: StudentHelp (Напишите, если есть вопросы) Посмотреть другие работы этого продавца Тип работы: Диплом и связанное с ним Сдано в учебном заведении: Skillbox Описание: Дипломный проект SearchEngine - Поисковый движок -2022 год. Данный проект реализует поисковый движок, предоставляющий пользователю специальный API со следующими основными функциями: предварительное индексирование сайтов; выдача основных сведений по сайтам; поиск ключевых слов в проиндексированных сайтах и предоставление их пользователю. Комментарии: Дипломный проект SearchEngine - Поисковый движок -2022 год. Веб-страница: В проект также входит веб-страница, которая позволяет управлять процессами, реализованными в движке. Страница содержит три вкладки: - Вкладка DASHBOARD (см. приложенные файлы) Эта вкладка открывается по умолчанию. На ней отображается общая статистика по всем проиндексированным сайтам, а также детальная статистика и статус по каждому из сайтов (статистика, получаемая по запросу /statistics). - Вкладка MANAGEMENT (см. приложенные файлы) На этой вкладке находятся инструменты управления поисковым движком — запуск (запрос /startIndexing) и остановка (запрос /stopIndexing) полной индексации (переиндексации), а также возможность добавить (обновить) отдельную страницу по ссылке (запрос /indexPage/{pagePath}). Отметим, что если в последнем запросе присутствует только URL сайта без завершающего слэша (/), как в приведённом выше скриншоте, то индексироваться будет указанный сайт целиком. - Вкладка SEARCH (см. приложенные файлы) Эта вкладка предназначена для тестирования поискового движка. На ней находится поле поиска и выпадающий список с выбором сайта, по которому искать, а при нажатии на кнопку SEARCH выводятся результаты поиска (по запросу /search). Кодировка страницы (см. приложенные файлы) На всех вкладках присутствует выпадающий список Language (Язык). При выборе одного из двух вариантов — English или Русский — соответственно поменяется кодировка страницы. Пример русской раскладки:(см. приложенные файлы) Файлы настройки: Данное приложение по выбору может работать либо с СУБД MySQL, либо с СУБД PostgreSQL. Выбор зависит от значения параметра spring.profiles.active в конфигурационном файле application.yaml, который определяет профиль и находится в корне проекта. Параметр может принимать одно из двух значений: mysql — для работы с MySQL; postgresql — для работы с PostgreSQL. В зависимости от значения заданного профиля подключается один из двух соответствующих конфигурационных файлов: application-mysql.yaml или application-postgresql.yaml, которые тоже находятся в корне проекта. Приложение допускает подключение и к другим реляционным БД. Для этого, по аналогии с PostgreSQL, нужно создать файл application-{profilename}.yaml, скрипт для генерирования объектов БД — schema-{profilename}.sql и скрипт для наполнения таблицы field — data-{profilename}.sql. Кроме того, в файле pom.xml нужно подключить подходящую зависимость, обеспечивающую работу с выбранной БД. Раздел server В этом разделе задаётся параметр port — порт, через который контроллеры приложения "слушают" веб-запросы. Задавая разные порты, можно, например, из разных папок, в которых находятся файлы настройки, запустить несколько экземпляров приложения. Также задаётся параметр indexingAvailable, который разрешает или запрещает данному экземпляру приложения индексировать сайты. При любом значении параметра — true или false — разрешены поиск по сайтам и просмотр статистики. Раздел spring Здесь задаются параметры СУБД, в которой приложение хранит данные конфигурации. Некоторые параметры общие для всех СУБД и они находятся в файле application.yaml. Специфичные для выбранной СУБД параметры находятся в соответствующих файлах application-{profilename}.yaml Следует отметить важность параметра spring.jpa.hibernate.ddl-auto и отличия его применения в двух случаях: СУБД MySQL. База данных создаётся на основе классов из пакета main.model. В том случае, когда параметр принимает значение create, при запуске приложения база данных пересоздаётся, то есть содержимое всех таблиц БД уничтожается. При следующих запусках значение этого параметра следует установить в update. Другие СУБД. База данных создаётся скриптом schema-{profilename}.sql. При этом параметр spring.jpa.hibernate.ddl-auto должен принимать значение none. Теперь поведение системы зависит от параметра spring.sql.init.mode: если он принимает значение always, то при запуске приложения база данных пересоздаётся. Если он принимает значение never, то база данных остаётся прежней. Раздел logging Здесь можно задать уровень логирования level.root и имя файла журнала file.name. Раздел config На режим индексации влияют следующие параметры: forSitesThreadNumber — максимальное количество потоков, в которых могут параллельно индексироваться различные сайты; forPagesThreadNumber — максимальное количество потоков, в которых могут индексироваться страницы каждого сайта. Когда наложено ограничение на минимальный интервал обращения к конкретному сайту (об этом ниже), то 2–3 потока вполне достаточно. Если такого ограничения нет, то значение 8 данного параметра значительно ускорит процесс индексирования; repeatedPageCount — один из параметров, позволяющих ограничить количество индексируемых страниц; maxPagesInSite — когда количество страниц для данного сайта достигает этого значения, индексация сайта останавливается. Чаще всего ещё несколько страниц будет проиндексировано после достижения maxPagesInSite. synchronizePageSave — разрешает или запрещает включение оператора synchronize при сохранении записи в таблицу page. Для СУБД MySQL параметр должен быть установлен в true, для PostgreSQL может быть установлен в false. multiInsertString — в этом параметре определена подстрока специфичного для каждой СУБД запроса множественной вставки. Список sites Здесь приведён список сайтов, которые программа будет в состоянии индексировать. Каждый сайт характеризуется следующими параметрами: url — адрес сайта. Если в адресе присутствует страница (как, например, в случае https://et-cetera.ru/mobile), то всё равно индексирование начнётся с главной страницы (как если бы в параметре было указано https://et-cetera.ru); name — имя сайта. Оно, в частности, выводится в списке сайтов на вкладке DASHBOARD; pause — минимальный интервал обращения к одному сайту при индексировании, выраженный в миллисекундах. Параметр может принимать положительные значения и 0. При нуле задержек между обращениями не будет. Используемые технологии Приложение построено на платформе Spring Boot. Необходимые компоненты собираются с помощью фреймворка Maven. Maven подключает следующие относящиеся к Spring Boot стартеры: spring-boot-starter-web — подтягивает в проект библиотеки, необходимые для выполнения Spring-MVC функций приложения. При этом обмен данными между браузером и сервером выполняется по технологии AJAX; spring-boot-starter-data-jpa — отвечает за подключение библиотек, требующихся для работы приложения с базой данных; spring-boot-starter-thymeleaf — шаблонизатор веб-страницы программы. Для загрузки и разбора страниц с сайтов используется библиотека jsoup. Данная версия программы работает с СУБД MySQL. Для этого подключается зависимость mysql-connector-java. Для удобства написания (и чтения) программного кода и для расширения функциональности языка Java используется библиотека Lombok (зависимость lombok). Запуск программы Репозиторий с приложением SearchEngine находится по адресу https://github.com/vrpanfilov/SearchEngine.git. Если проект загрузить на локальный диск, то он готов к тому, чтобы его можно было скомпилировать и запустить с помощью среды разработки IntelliJ IDEA. Перед первой компиляцией программы следует выполнить следующие шаги: Установить СУБД — одну или несколько, если они ещё не установлены. В базе данных создать схему search_engine. Имя схемы может быть и другим, но тогда это должно быть отражено в параметре spring.datasource.url в файле application-{profilename}.yaml. В схеме нужно создать пользователя se_user с паролем se_user. Пользователь и пароль могут быть другими, это опять же должно соответствовать параметрам spring.datasource.username и spring.datasource.password в файле application-{profilename}.yaml. Установить параметры jpa.hibernate.ddl-auto и, если нужно, параметр spring.sql.init.mode так, как это описано выше. Установить фреймворк Apache Maven, если он ещё не установлен. В командной оболочке (например, PowerShell) перейти в корневой каталог проекта и выполнить пакетный файл init_morphology.cmd: .\\init_morphology.cmd. Теперь приложение можно компилировать и запускать из программной среды. Приложение может быть также запущено командной строкой. Для этого оно должно быть скомпилировано в панели Maven среды разработки командой package: (см. приложенные файлы). Результат компиляции, SearchEngine-0.0.1-SNAPSHOT.jar, будет располагаться в папке target. Этот файл можно перенести в любую доступную папку на компьютере, при этом в той же папке должны находиться файлы application.yaml и application-{profilename}.yaml. Приложение запускается строкой java -jar SearchEngine-0.0.1-SNAPSHOT.jar. Можно поступить и так. В несколько папок — например, d:\\aaa, d:\\bbb — положить набор файлов настройки application.yaml и application-{profilename}.yaml. Файлы application.yaml будут отличаться параметром server.port. А приложение SearchEngine-0.0.1-SNAPSHOT.jar можно поместить, например, в папку d:\\search_engine. Тогда, перейдя, последовательно в папки d:\\aaa и d:\\bbb, можно запустить два экземпляра программы командой java -jar d:\\search_engine\\SearchEngine-0.0.1-SNAPSHOT.jar. Эти экземпляры будут "слушать" разные порты и не мешать друг другу при условии, что только у одного экземпляра приложения параметр конфигурации server.indexingAvailable принимает значение true. Размер файла: 8,9 Мбайт Фаил: (.zip)
Скачано: 1 Коментариев: 0 |
||||
Есть вопросы? Посмотри часто задаваемые вопросы и ответы на них. Опять не то? Мы можем помочь сделать! Некоторые похожие работы:К сожалению, точных предложений нет. Рекомендуем воспользоваться поиском по базе. |
||||
Не можешь найти то что нужно? Мы можем помочь сделать! От 350 руб. за реферат, низкие цены. Спеши, предложение ограничено ! |
Вход в аккаунт:
Страницу Назад
Cодержание / Дипломные проекты / Дипломный проект SearchEngine - Поисковый движок -2022 год
Вход в аккаунт: