Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

루씬(Lucene)

  • 고성능 정보 검색(IR*, Information retrieval) 라이브러리

  • 색인과 검색의 기능을 담당

색인(index)

대량 문서에서 원하는 내용을 빠르게 검색하고자 할 때 원본 문서를 색인하고 검색하기 좋은 형태로 변환해 색인으로 만들어두는 처리 과정(indexing), 이 과정을 거친 결과물(index)

  1. 텍스트 추출(Parser)

  2. 텍스트 분석(Analysis)

  3. 색인(Index)

    • 해당 단어가 어느 문서에 들어있는지 등을 자료구조로 만든다

검색(searching)

색인에 들어있는 토큰을 기준으로 해당하는 토큰이 포함된 문서를 찾아내서 사용자 관점의 우선순위를 부여하는(ranking) 과정을 말함

...

Expand
titleSample sentence : "My Friends Tigger & Pooh, 2007-2010. 내 친구 티거와 곰돌이 푸우"

my
friends
tigger
pooh

친구
티거와
곰돌이
푸우

  • simple은 예외로 tokenize된 word를 색인하지 않고 전체 문장을 통으로 인덱싱하고 있다.

    • 검색 시 tokenize된 단어로 matching으로 부분 검색을 할 수 없다.

    • 전체 문장이 매치되는 matching 검색 가능

    • wildcard로 like 검색 대체 가능

Expand
titleSample sentence : "My Friends Tigger Pooh, 2007-2010. 내 친구 티거와 곰돌이 푸우"

Status
colourGreen
titleSearch success
{{protocol}}://{{hostname}}:{{port}}/node/testIndex?simple_matching=My Friends Tigger Pooh, 2007-2010. 내 친구 티거와 곰돌이 푸우

Status
colourRed
titleno data
{{protocol}}://{{hostname}}:{{port}}/node/testIndex?simple_matching=Pooh

Status
colourRed
titleno data
{{protocol}}://{{hostname}}:{{port}}/node/testIndex?simple_matching=pooh

code

  • CodeAnalyzer

    • CodeTokenizer

    • Code Block
      @Override
      protected boolean isTokenChar(int c) {
          return ! (Character.isWhitespace(c) || c == ',') ;
      }
    • LowerCaseFilter : 소문자로 통일 

...