졸업작품 계획
졸업작품 대학교 공지사항을 모두 검색이 가능한 검색엔진을 구축한다 사용자가 각각의 다른 사이트에 들어가서 공지사항을 찾지 않아도 되고 검색엔진을 통해서 검색하고 이동이 가능하다
ElasticSeatch를 이용한 검색엔진
학교 공지사항과 여러 가지 정보를 검색할 수 있는 검색 엔진을 만들기 위해 MariaDB, Python (크롤링), Logstash, Elasticsearch를 사용하는 방법을 설계. 이 프로젝트는 크게 데이터 수집, 데이터 저장, 데이터 인덱싱 및 검색으로 구성
1. 데이터 수집 (Python 크롤링)
환경 설정: Python 환경에 필요한 라이브러리 설치 (
requests,BeautifulSoup,selenium등).크롤링 대상 분석: 학교 공지사항 페이지 구조 분석 (HTML 구조, 필요 데이터 위치 등).
크롤링 스크립트 개발: Python을 사용하여 학교 웹사이트의 공지사항을 주기적으로 크롤링하는 스크립트 개발.
데이터 추출: 페이지에서 필요한 정보 (제목, 날짜, 내용, URL, 작성자) 추출.
데이터 전처리: 추출된 데이터를 필요에 맞게 가공 (날짜 형식 통일, 필요 없는 정보 제거 등).
2. 데이터 저장 (MariaDB)
MariaDB 설치 및 설정: MariaDB 서버 설치 및 초기 설정 (사용자 생성, 권한 설정 등).
데이터베이스 및 테이블 설계: 크롤링한 데이터를 저장할 데이터베이스와 테이블 설계.
데이터 저장 스크립트 개발: Python 스크립트를 사용하여 크롤링한 데이터를 MariaDB에 저장.
3. 데이터 인덱싱 및 검색 (Logstash, Elasticsearch)
Elasticsearch 설치 및 설정: 검색 엔진으로 사용할 Elasticsearch 서버 설치 및 기본 설정.
Logstash 설치 및 설정: MariaDB에서 Elasticsearch로 데이터를 전송하기 위해 Logstash 설치 및 설정.
Logstash 파이프라인 구성: MariaDB의 데이터를 읽어 Elasticsearch로 인덱싱하는 파이프라인 구성. 이때, jdbc input 플러그인을 사용하여 MariaDB에 연결하고, 필요한 쿼리를 실행하여 데이터를 가져온 후 Elasticsearch output 플러그인으로 데이터를 전송.
Elasticsearch 인덱스 설정: 검색 효율을 높이기 위한 인덱스 설정 및 매핑 정의.
검색 API 개발: Elasticsearch 검색 기능을 활용하여 사용자가 원하는 정보를 검색할 수 있는 API 개발.
4. 프론트엔드 인터페이스
웹 인터페이스 개발: 사용자가 쉽게 검색할 수 있도록 웹 기반 인터페이스 개발.
검색 결과 표시: 검색 결과를 사용자에게 효과적으로 표시하기 위한 UI/UX 설계.
5. 배포 및 모니터링
- 서버 배포: 개발한 시스템을 서버에 배포.
- 모니터링: Elasticsearch, MariaDB의 성능 및 안정성 모니터링. 필요 시 최적화 진행.
이 과정을 통해 학교 공지사항과 여러 가지 정보를 검색할 수 있는 검색 엔진을 개발할 수 있다.
추가 개발
실시간 검색어 순위