검색엔진
- 시스템에 저장된 정보를 찾아주는 정보 검색 시스템
: 크롤러(crawler)를 이용하여 웹상의 정보를 검색하고 색인화(indexing) 수행
: 크롤러가 주기적으로 웹 사이트를 방문하여 해당 웹 사이트의 정보에 대해 색인 작성 후 DB에 저장하고
검색시 이를 활용
- 종류
ㆍ로봇 검색 엔진
: 크롤러를 이용하여 웹상의 데이터를 수집하고 키워드 색인을 통해 사용자에게 제공하는 방식
: Naver나 Google의 검색엔진 방식
ㆍ디렉터리 검색 엔진
: 주제 분류에 의한 검색(디렉터리 서비스)를 제공하는 검색엔진
: 데이터의 분류를 직접 사람이 수행
: 90년대 Yahoo에서 사용한 방식
ㆍ메타 검색 엔진
: 자체적으로 정보를 보유하고 있지 않으면서 사용자가 입력한 키워드를 복수의 다른 검색엔진으로 전송하여
결과를 얻고 그 결과들을 종합하여 표시만 해주는 검색엔진
: 여러 검색엔진의 결과를 동시에 보여주기 때문에 결과를 한눈에 볼 수 있음
: 메타 검색이라는 과정을 한 번 더 거쳐야 하므로 속도가 느릴 수 있음
Elastic Search
- Apache Lucene(루씬) 기반의 Java 오픈소스 분산 검색 엔진
: 루씬 라이브러리를 단독으로 사용할 수 있음
: 방대한 양의 데이터를 신속하게, 거의 실시간 (NRT, Near Real Time)으로 저장, 검색, 분석 가능
: 검색을 위해 단독으로 쓰이기도 하며 ELK Stack로 쓰이기도 함
- ELK Stack
ㆍLogstash
: 다양한 소스 (DB, csv 파일 등)의 로그 또는 트랜잭션 데이터 수집, 집계, 파싱하여 Elastic Search에 전달
ㆍElasticSearch
: Logstash으로 부터 받은 데이터를 검색 및 집계하여 필요한 정보를 획득
ㆍKibana
: Elastic Search의 빠른 검색을 통해 집계한 데이터를 시각화 및 모니터링
- 관련개념 참고
: victorydntmd.tistory.com/308
Solr
- Java로 작성된 오픈소스 엔터프라이즈 검색 플랫폼
: 단독 애플리케이션 서버 형태로 작동하며, REST 형식의 API를 제공
: Elastic Search 보다 상대적으로 안정적인 검색 엔진
: 검색엔진에 활용될 데이터들이 주로 장문의 Text로 구성
- Elastic Search vs Solr
Refference
ko.wikipedia.org/wiki/%EA%B2%80%EC%83%89_%EC%97%94%EC%A7%84
tcpschool.com/webbasic/searchengine
'Development > Development' 카테고리의 다른 글
[백엔드 개발자 로드맵 2020] GraphQL (GQL) (0) | 2021.03.18 |
---|---|
[백엔드 개발자 로드맵 2020] 메시지 브로커 (Message Broker) (0) | 2021.03.18 |
[백엔드 개발자 로드맵 2020] 백엔드 서비스 아키텍처 패턴 (0) | 2021.03.17 |
[백엔드 개발자 로드맵 2020] 웹 보안 지식 (0) | 2021.03.17 |
[백엔드 개발자 로드맵 2020] 해시 알고리즘과 암호화 알고리즘 (0) | 2021.03.16 |