- 루씬이란?
- 색인과 검색 기능을 간단하게 추가할 수 있다.
- 아파치 최상위 프로젝트(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
공지사항
카테고리
|
최근에 올라온 글
최근에 달린 댓글
최근에 받은 트랙백
태그목록
Oracle HashTable Android Eclipse 내장함수 NSIS C# svn MSsql DOM hooking procedure jsp Delphi Excel mysql Excel 형변환 ADO visual studio 2005 Java xml C Visual Basic 6.0 datagrid 문자열 Bluelab function flex delphi DbUtils글 보관함
달력
링크
Total :
Today : Yesterday :
Today : Yesterday :