ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • lucene 으로 검색사이트 만들기 - 1 (개요편)
    학교 강의/인덱싱 2018. 11. 29. 18:33

    이번에는 lucene 을 이용해 검색엔진의 작은 구성부터 검색 웹사이트까지 만들어보는 내용을 다룰려고 합니다.

    밑에 순서대로 진행될 겁니다.

    1. 개요편

    2. 색인편

    3. 검색편

    4. 사이트편

    5. 심화편



    먼저 개요를 시작하겠습니다.


    lucene이란, 색인엔진과 검색엔진에 대해 간단한 API를 제공해주는 도구라고 보시면 됩니다. 

    아래 그림과 같이 색인엔진은 인덱싱을 통해서 색인 저장소에 색인들을 저장합니다. 검색엔진은 색인 저장소에 있는 색인을 검색합니다.





    환경만들기

    Tomcatv8.5, Eclipse jee 2018-09 환경에서 작업하시는 걸 추천합니다.

    그리고 java 환경에서 lucene을 쓰려면 아래와 같은 파일들이 필요합니다.  꼭 프로젝트에 추가한 후 Add BuildPath 해주세요.





    중요한 개념들

    • 인덱싱 과정에 핵심 클래스들: 


    Document And Field

    Document는 문장이라고 보시면 됩니다. 좀 더 자세히 말하자면 Document Field 집합이고  데이터를 기록합니다.

    Field Document Description 저장합니다.

     

    Analyzer

    문자열을 여러 단어로 나누는 걸(分词) 담당합니다. 이는 인덱싱 전에 진행됩니다. Analyzer에서 얻은 결과는 IndexWriter 넘어갑니다.

    ex)

    Analyzer analyzer=new StandardAnalyzer();

     //StrandardAnalyzer 자주 쓰이는 Analyzer입니다.


    IndexWriter

    인덱싱 과정에서 핵심 컴포넌트새로운 색인을 만들어서 이미 존재하는 색인저장소에 추가시킵니다.

     

    Directory

    추상클래스입니다. Lucene 색인의 위치 나타냅니다. 즉 색인저장소라고 봐도 무방합니다.

    Directory는 두 종류가 있습니다:

    FSDirectory 파일시스템에서 위치를 나타냄.

    RAMDirectory 메모리(RAM)에서 위치를 나타냄.



    • 검색 과정에 핵심 클래스들:


    IndexSearcher

    IndexWriter에서 작성한 색인에서 검색한다.

     

    Term

    검색기능의 기본적인 요소, 앞에 나온 Field 비슷하다. 여기에 검색 조건을 넣을 있다.

     

    Query

    검색 인터페이스.

     

    TermQuery

    Lucene 제공하는 가장 기본적인 검색종류

     

    TopDocs

    기본적인 포인터 용기, 포인터들은 보통 검색결과 N 가리킵니다. 검색결과는 DocumentID입니다.





    사진과 내용 출저:

    https://blog.csdn.net/zyw0929/article/details/81232946

    https://www.cnblogs.com/skyme/archive/2012/07/30/2615054.html




    '학교 강의 > 인덱싱' 카테고리의 다른 글

    lucene 으로 검색사이트 만들기 - 2 (색인편)  (0) 2018.12.02

    댓글

Designed by Tistory.