- 루씬이란?
- 색인과 검색 기능을 간단하게 추가할 수 있다.
- 아파치 최상위 프로젝트(TLP, Top Level Project)
- 루씬은 프로그램에 텍스트 색인과 검색 기능을 추가할수 있도록 지원한다. 여기에서 '텍스트'라는 말에 주의!!
- 루씬을 이용하여 임의의 파일을 직접 색인하고 검색할 수는 없다.
- 문자열 형태로 변경된 이후에서 루씬으로 색인하고 검색 가능
(doc, pdf, hwp 파일 자체에 대한 검색 불가 내용을 텍스트로 변환후 색인 및 검색 가능)
- 색인(Indexing)이란?
- 색인은 단어를 기준으로 '임의 접근'이 가능한 특별한 구조
- 원하는 단어가 책의 어디에 있는지 찾고 싶은 경우
- 색인 자료는 일반적으로 디스크에 파일 형태로 저장한다.
- 검색(Searching)이란?
- 색인에서 해당 단어를 찾아 어느 위치에 단어가 있는지를 알려주는 과정
- 정확도(precision)와 재현률(recall)
- 복합단어 검색, 구문검색(phrase query), 와일드카드(wildcard) 및 결과의 순위, 결과 정렬, 질의의 편의성
- 색인 주요 클래스
주요 클래스
- IndexWriter : 색인 과정 전체 총괄하는 클래스(색인 추가, 문서 추가)
- Directory : FSDirectory를 이용해 파일 시스템의 특정 경로에 색인 데이터 저장 (RAMDirectory:램사용 단위테스트시 주로 사용)
- Analyzer : 분석기 지정한 모든 텍스트는 분석기(Analyzer)를 거친다.
- Document : 색인에 추가할 데이터는 모두 문서(Document) 단위로 처리
- Field : Keyword, UnIndexed, UnStored, Text 필드로 구성
- 검색 주요 클래스
- IndexSearcher : IndexWriter가 만들어둔 색인을 검색하려면 IndexSearcher를 통해야함. 읽기 전용. 질의(Query)를 입력 받아 결과(Hits)를 찾아주는 메소드
- Term : 색인의 내부에서 단어를 의미하는 가장 기본적인 요소
- Query : 검색어, 가상클래스, TermQuery, BooleanQuery, PhraseQuery, PrefixQuery, PhrasePrefixQuery, RangeQuery, FilteredQuery, SpanQuery 등의 하위 클래스
- TermQuery : Query의 하위 클래스 중 기본 클래스
- Hits : Query를 통해 검색한 결과는 Hits로 수집
by 나비:D
공지사항
카테고리
|
최근에 올라온 글
최근에 달린 댓글
최근에 받은 트랙백
태그목록
svn Bluelab MSsql ADO HashTable DbUtils Java 내장함수 Visual Basic 6.0 DOM 형변환 delphi procedure NSIS function Delphi Excel hooking Eclipse mysql Excel Oracle jsp visual studio 2005 C datagrid 문자열 flex xml Android C#글 보관함
달력
링크
Total :
Today : Yesterday :
Today : Yesterday :