반응형
검색엔진은 어떠한 원리인지, 오픈소스 검색엔진에는 어떤 것들이 있는지 간단하게 조사해보았다.
OpenSource 검색엔진 | 상업적이용가능 | 한글지원 | 프로그래밍 가능 | 설치 및 사용 용이성 | 특징 |
Apache Lucene | 오픈소스 라이브러리 | 형태소 분석기 필요 | O | 라이브러리로 이용 라이브러리 사용법 숙지 필요 |
Java기반. 색인과 검색기능 제공. 형태소 기능 추가로 필요. 프로그램(솔루션)이 아닌 소프트웨어 라이브러리이다. |
Apache Solr | 오픈소스 솔루션 | 한글 형태소 분석기 내장 | (조사 필요) | 운영서버에 설치, 컨피그, 실행 자체 솔루션 사용법 숙지 필요 |
Lucen기반 오픈소스 검색엔진. HTTP 요청에 따라 처리와 응답을 하는 웹 기반 솔루션이다. 기본적인 UI를 제공하고 독립적인 서버로 구현되어 이용에 용이하다. |
Elasticsearch | 오픈소스 솔루션 OSS라이센스기능만 가능 Basic버전은 협약 필요 |
한글 형태소 분석기 내장 | (조사 필요) | 운영서버에 설치, 컨피그, 실행 자체 솔루션 사용법 숙지 필요 |
Lucen기반 오픈소스 검색엔진. HTTP 요청에 따라 처리와 응답을 하는 웹 기반 솔루션이다. 기본적인 UI를 제공하고 독립적인 서버로 구현되어 이용에 용이하다. Solr 대비 데이터 수정이 잦은 경우 속도가 빠르고 더 다양한 형식에서 데이터를 수집할 수 있다. |
Sphinx | 오픈소스 솔루션 | -CJK 미지원하나 CJK ngram characters설정으로 가능 ( 1글자씩 읽히는 단점) | (조사 필요) | 운영서버에 설치, 컨피그, 실행 사용법은 가장 간단하다고 함 |
다른 솔루션 대비 간단하고 가볍다.PHP,Ruby,Python등에서 유리. 백엔드가 DB인 경우 간단. 최소한의 설정으로 사용 가능 (특히 MySQL) |
검색엔진에 대한 이해
▶ 검색엔진은 검색어 (문장이나 키워드 등) 을 통해 가장 유사한 데이터를 찾아주는 것
▶ 검색엔진은 1)수집, 2)색인, 3)검색 의 기능을 수행한다.
1)수집: DB, 크롤링, 파일 등으로부터 데이터를 수집한다.
2)색인: 수집한 데이터를 분석하고, 빠르게 찾을 수 있도록 저장하는 과정이다.
3)검색: 최상의 검색 결과를 위한 알고리즘을 적용한다.
▶ 검색엔진에는 형태소를 분석하는 형태소 분석기가 필요하다. (일반적으로 명사만 추출한다고 했을 때)
ㄴ. "자바와스프링의원리" => 자바, 스프링, 원리
▶ 형태소 분석으로 뽑아낸 키워드에 대해 역색인 작업을 한다. -> 키워드에 문서들의 Primary Key와 같은 값등을 매핑하여 저장하는 기술
ㄴ. "키워드" : 해당키워드가 있는 자료의 색인 => "자바": 1, 2 "스프링": 2,3 "원리": 2,5,10 -> 관련 자료(교집합 등)을 우선순위로 출력한다.
반응형
'개발 > 개발관련' 카테고리의 다른 글
[개발관련] 윈도우 유용한 기능, '로그인 후 앱 다시 시작' 기능 (0) | 2023.06.10 |
---|---|
[개발관련] 배포기술자 web.xml (0) | 2023.06.02 |
[개발관련] OOP관점에서 클래스와 객체와 인스턴스 용어 정리 feat 붕어빵 (0) | 2023.05.27 |
[개발관련] n8n 점검 로직 (1) | 2023.05.22 |
[개발관련] Gradle 프로젝트 만들기(gradle init, gradle wrapper) Maven과 Gradle 프로젝트 비교 (0) | 2023.05.20 |