IT/Elasticsearch

Elastic Search analyse process (analyser + tokeniser + tokenfilter)

준나이 2019. 2. 9. 19:21

    Elastic Search analyse process


    1. analysis(분석) :



    2. analyser(분석기)  :



    3. tokenizer :


      • 입력 데이터를 검색어 토큰으로 분리하는 역할
      • analyser에 tokenizer는 하나만 적용 (tokenizer를 적용하지 않으면 입력된 필드 전체 값이 하나의 토큰으로써 저장)
      • analyzer 필드 내부의 tokenizer 옵션에 내장된 tokenizer 명시하거나 tokenizer 필드를 이용해서 custom tokenizer 생성 후 명시
      • e.g. standard tokenizer, nGram tokenizer, edgeNGram tokenizer, keyword tokenizer, letter tokenizer, whitespace tokenizer, pattern tokenizer, uax_url_email tokenizer, path_hierachy tokenizer
      • https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-tokenizers.html



    4. token filter :


      • tokenizer로 분리된 토큰들에 다시 필터를 적용해서 실제로 검색에 쓰이는 검색어들로 최종변환하는 작업
      • 토큰 필터를 거치며 변경, 추가, 삭제 과정을 거쳐 최종적으로 검색어에 사용되는 토큰으로 저장(분석 단계 중 가장 중요한 과정)
      • analyzer 필드 내부의 filter 옵션에 내장된 token_filter 명시하거나 filter 필드를 이용해서 custom token_filter 생성 후 명시
      • token filter는 n개가 존재할 수 있기 때문에 배열로 명시 (입력된 순서대로 token filter 적용)
      • e.g. standard token filter, asciifolding token filter, length token filter, lowercase token filter, uppercase token filter, nGram token filter, edgeNGram token filter, porter_stem token filter, shingle token filter, stop token filter, word_delimiter token filter, stemmer token filter, keyword_marker token filter, keyword_repeat token filter, unique token filter, snowball token filter, synonym token filter, 합성어 token filter, reverse token filter, truncate token filter, trim token filter, limit token filter, hunspell token filter, cjk_bigram token filter, 킵워드 token filter
      • https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-tokenizers.html



    5. char filter :