Day32 (4.26)

ShinJuYong·2022년 4월 26일
0

camp

목록 보기
31/44
post-thumbnail

Analyzer / Tokennizer / TokenFilter

엘라스틱서치에서 정해주는 검색조건을 바꿔보자

Default(엘라스틱서치에서 자동으로 구분해줌.)

  • 특수문자를 없애준다(Character-Filter)
  • 띄어쓰기로 Token을 구분한다.(Tokenizer)
  • lowercase로 구분된다.(Token-Filter)

Analyzer

  • Standard
    위의 Default가 스탠다드 애널라이저
  • whitespace
    ' '(공백)으로 잘라내기만한다.
  • keyword

Settings & Mappings

Settings
사용하고싶은 Analyzer, Tokenizer, Token-Filter가 있으면 미리 Settings에 등록한다.

Settings 넣기

{
    "settings" : {
        "analysis" : {
            "analyzer" : {
                "my_ngram_analyzer" : {
                    "tokenizer" : "my_ngram_tokenizer"
                }
            },
            "tokenizer" : {
                "my_ngram_tokenizer" : {
                    "type" : "nGram",
                    "min_gram" : "1",
                    "max_gram" : "10"
                }
            }
        },
    "max_ngram_diff" : "20"
    }
}

Settings 바꾸기

POST http://URL:9200/indexName/_close
Content-Type: application/json

POST http://URL:9200/indexName/_open
Content-Type: application/json

위와같이 close를 시킨후 수정문을 넣고 open까지 해야 수정이 완료된다.


Mappings
어떤 컬럼을 어떤 Analyzer를 사용해서 분석할 것인지 미리 Mappings에 등록한다.

처음 들어간 값을 기반으로 Mapping 디폴트값이 생성된다.

Mapping 설정해보기

PUT http://localhost:9200/myproduct03/_mappings
Content-Type: application/json

{
    "properties" : {
        "name" : {
            "type" : "text"
        },
        "description" : {
            "type" : "text",
            "analyzer" : "my_ngram_analyzer"
        },
        "price" : {
            "type" : "long"
        }
    }
}

수정시 참고
만약 처음 들어간 Mapping값을 변경하려면 index의 값또한 변경돼야하지만
이전의 값을 제외한 새로운 값을 Mapping하는건 바로 추가가 된다.

메인프로젝트 - ElasticSearch(Settings,Mappings설정)

알고리즘

프로그래머스-LV2-H_Index
프로그래머스-LV2-구명보트

0개의 댓글

관련 채용 정보