/
analyzer

analyzer

루씬(Lucene)

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

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

 

색인(index)

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

 

  1. 텍스트 추출(Parser)

  2. 텍스트 분석(Analysis)

  3. 색인(Index)

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

 

검색(searching)

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

루씬(Lucene)

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

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

 

색인(index)

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

 

  1. 텍스트 추출(Parser)

  2. 텍스트 분석(Analysis)

  3. 색인(Index)

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

 

검색(searching)

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

 

Analyzer는 Tokenizer와 TokenFitler로 구성된다.

  • Tokenizer : Text를 Token으로 분리

  • TokenFilter : 분리된 Token을 정제

 

AnalyzerType

src/test/java/net/ion/ice/services/AnalyzerTest.java

simple

  • SimpleAnalyzer : lucene-analyzer-common에 존재하는 analyzer로 문자가 아닌것(기호/숫자)을 기준으로 나누고 소문자로 변경

    • LowerCaseTokenizer : 영문 분할용으로 대문자를 소문자로 바꿔서 분할하며, LetterTokenizer + LowerCaseFitler의 조합

    • @Override protected int normalize(int c) { return Character.toLowerCase(c); }

my
friends
tigger
pooh

친구
티거와
곰돌이
푸우

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

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

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

    • wildcard로 like 검색 대체 가능

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

no data {{protocol}}://{{hostname}}:{{port}}/node/testIndex?simple_matching=Pooh

no data {{protocol}}://{{hostname}}:{{port}}/node/testIndex?simple_matching=pooh

Search success {{protocol}}://{{hostname}}:{{port}}/node/testIndex?simple_wildcard=Pooh

Search success {{protocol}}://{{hostname}}:{{port}}/node/testIndex?simple_wildcard=pooh

code

  • CodeAnalyzer

    • CodeTokenizer

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

my
friends
tigger
&
pooh
2007-2010.

친구
티거와
곰돌이
푸우

simpleCode

  • SimpleCodeAnalyzer

    • SimpleCodeTokenizer

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

my friends tigger & pooh
2007-2010. 내 친구 티거와 곰돌이 푸우

whitespace

  • WhitespaceAnalyzer : lucene-analyzer-common에 존재하는 analyzer로 공백이나 탭등을 기준으로 tokenize를 수행

    • WhitespaceTokenizer : 공백 문자로 텍스트를 분할

My
Friends
Tigger
&
Pooh,
2007-2010.

친구
티거와
곰돌이
푸우

standard

  • StandardAnalyzer : lucene-core에 포함된 analyzer로 유니코드 텍스트 분할 알고리즘을 사용하여 텍스트를 단어 경계에서 단어로 나눈다. 대부분의 구두점제거, 소문자화, 불용어 제거.

    • StandardTokenizer

    • StandardTokenFilter

    • LowerCaseTokenFilter

    • StopTokenFilter

cjk

  • CJK (중국어, 일본어 및 한국어)

  • NoStopCJKAnalyzer : StandardTokenizer로 텍스트를 토큰 화하고, CJKWidthFilter로 콘텐츠를 정규화하고, LowerCaseFilter로 대소 문자를 접고, CJKBigramFilter로 CJK의 bigrams를 형성.

    • StandardTokenizer

    • CJKWidthFilter

    • LowerCaseFilter

    • CJKBigramFilter

 

 

PropertyType의 default analyzer 기준

propertyType

value

default analyzer

propertyType

value

default analyzer

idable

true

simpleCode

labelable

true

cjk

valueType

CODE

CODES

REFERENCES

PARTS

simpleCode

TEXT

standard

others

simple

 

 

 

 

Related content

PropertyType
PropertyType
Read with this
query Method
query Method
More like this
Getting Started .
Getting Started .
Read with this
용어 사전
용어 사전
More like this
Schema
Read with this
jonyGuideTest
jonyGuideTest
More like this