티스토리 뷰
-
루씬이란?
-
자바로 개발된 오픈소스 정보검색(IR, Information Retrieval)라이브러리
-
독립된 프로그램이 아닌 소프트웨어 라이브러리
-
루씬 설치후 사용자가 루씬 라이브러리를 사용하여 검색서비스, 어플리케이션을 구현해야 함
-
프로그램에 텍스트 색인과 검색 기능을 추가할 수 있도록 지원함
-
Inverted Indexing 을 생성하여 사용함
-
Indexing 과정
-
Token scan: Text를 띄어쓰기 단위로 분리
-
Token Analysis: 불용어나 조사등을 뗴어내고 원형을 만듦
-
Frequency counting: 해당단어가 몇번 반복되는지를 Hash table에 저장
-
Sort: 검색이 용이하도록 정렬
-
Encoding: 디스크에 저장할 때 용량을 줄이기 위해 encoding함
-
Indexing과 검색 적용이 가능한 사례
-
이메일 검색: 저장된 메시지를 검색할 수 있음
-
새로도착한 메시지를 색인에 추가할 수 있는 이메일 어플리케이션
-
온라인 문서 검색: 온라인 문서 또는 저장된 출판물을 검색할 수 있음 CD기반이나 웹기반 또는 어플리케이션에 포함된 문서 판독기
-
웹 페이지 검색: 사용자가 방문한 모든 웹페이지를 색인화하기 위해 개인 검색 엔진을 만들 수 있는 웹브라우저 또는 프록시 서버
-
내용 검색: 저장된 문서에서 특정 내용을 검색할 수 있는 어플리케이션
-
버전관리 및 컨텐트 관리: 뉴스가 도착했을 떄 기사를 색인할 수 있는 뉴스 서버나 릴레이 서버
-
뉴스 및 유선(wire) 서비스: 뉴스가 도착했을 때 기사를 색인할 수 있는 뉴스 서버나 릴레이 서버
-
루씬의 기능
-
색인을 저장할 수 있는 곳
-
RAMDirectory
-
컴퓨터의 메인 메모리를 색인 장소로 사용
-
FSDirectory
-
디스크 파일 시스템에 색인을 저장
-
JDBCDirectory
-
DB를 색인 저장소로 사용하는 방법
-
일반적으로 지원하지는 않지만 별도의 루씬 샌드박스라는 것을 통해 지원
-
색인 기능 지원
-
검색 기능 지원
-
다양한 나라의 Full Text 분석기 지원(아시아권의 언어는 잘 지원되지 않음)
-
Hadoop을 분산 파일 시스템으로 사용할 수 있음
-
해석(parse)의 필요성
-
실전에서는 단순한 문자열 색인보다 다양한 문서를 indexing하고 검색하는 작업이 빈번함
-
XML, PDF, HTML, MS WORD와 같이 다양한 문서들을 색인화 하기위해 각각의 문서를 루씬의 Analyzer가 이해할 수 있도록 해석(parse)해서 텍스트로 추충해 내는 과정이 필요함
-
결론
-
Full Text를 검색하는데 효율적임
-
Full Text와 text를 단어로 쪼개는 방법을 제시하면 알아서 index를 구성해주며 빠른 검색 결과를 얻을 수 있음
'database' 카테고리의 다른 글
[Database] 데이터 모델링 - 데이터 성능 (0) | 2021.03.01 |
---|---|
[Database] 데이터 모델링 - 데이터 모델링의 개요 (0) | 2021.03.01 |
[Database] NoSQL (0) | 2020.08.30 |
auto increment (0) | 2020.04.13 |
DBeaver 단축키 (0) | 2020.04.13 |
- Total
- Today
- Yesterday
- 소프트웨어
- javascript
- dfs
- 구조체
- 최단경로
- C
- 이진탐색
- 클래스
- 입출력장치
- 퀵정렬
- 자료구조
- 세마포어
- BFS
- Stack
- 인접행렬
- 배열
- C++
- 운영체제
- stackframe
- 병행프로세스
- 교착상태
- server side rendering
- 스텍
- 동적프로그래밍
- react
- Java
- 알고리즘
- client side rendering
- 인접리스트
- 재귀함수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |