1. 루씬이란?
    - 색인과 검색 기능을 간단하게 추가할 수 있다.
    - 아파치 최상위 프로젝트(TLP, Top Level Project)
    - 루씬은 프로그램에 텍스트 색인과 검색 기능을 추가할수 있도록 지원한다. 여기에서 '텍스트'라는 말에 주의!!
    - 루씬을 이용하여 임의의 파일을 직접 색인하고 검색할 수는 없다.
    - 문자열 형태로 변경된 이후에서 루씬으로 색인하고 검색 가능
      (doc, pdf, hwp 파일 자체에 대한 검색 불가 내용을 텍스트로 변환후 색인 및 검색 가능)
  2. 색인(Indexing)이란?
    - 색인은 단어를 기준으로 '임의 접근'이 가능한 특별한 구조
    - 원하는 단어가 책의 어디에 있는지 찾고 싶은 경우
    - 색인 자료는 일반적으로 디스크에 파일 형태로 저장한다.
  3. 검색(Searching)이란?
    - 색인에서 해당 단어를 찾아 어느 위치에 단어가 있는지를 알려주는 과정
    - 정확도(precision)재현률(recall)
    - 복합단어 검색, 구문검색(phrase query), 와일드카드(wildcard) 및 결과의 순위, 결과 정렬, 질의의 편의성
  4. 색인 주요 클래스
    주요 클래스
    - IndexWriter : 색인 과정 전체 총괄하는 클래스(색인 추가, 문서 추가)
    - Directory    : FSDirectory를 이용해 파일 시스템의 특정 경로에 색인 데이터 저장 (RAMDirectory:램사용 단위테스트시 주로 사용)
    - Analyzer    : 분석기 지정한 모든 텍스트는 분석기(Analyzer)를 거친다.
    - Document  : 색인에 추가할 데이터는 모두 문서(Document) 단위로 처리
    - Field         : Keyword, UnIndexed, UnStored, Text 필드로 구성
  5. 검색 주요 클래스
    - IndexSearcher   : IndexWriter가 만들어둔 색인을 검색하려면 IndexSearcher를 통해야함. 읽기 전용. 질의(Query)를 입력 받아 결과(Hits)를 찾아주는 메소드
    - Term                : 색인의 내부에서 단어를 의미하는 가장 기본적인 요소
    - Query               : 검색어, 가상클래스, TermQuery, BooleanQuery, PhraseQuery, PrefixQuery, PhrasePrefixQuery, RangeQuery, FilteredQuery, SpanQuery 등의 하위 클래스
    - TermQuery        : Query의 하위 클래스 중 기본 클래스
    - Hits                  : Query를 통해 검색한 결과는 Hits로 수집
Posted by 나비 나비:D

BLOG main image
by 나비:D

공지사항

카테고리

분류 전체보기 (278)
Programming? (0)
----------------------------- (0)
나비의삽질 (5)
Application (177)
SQL (51)
Web (27)
etc. (14)
Omnia (0)
---------------------------.. (0)

글 보관함

달력

«   2018/07   »
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        
Total : 956,708
Today : 33 Yesterday : 764