엘라스틱서치에서 정해주는 검색조건을 바꿔보자
Default
(엘라스틱서치에서 자동으로 구분해줌.)
- 특수문자를 없애준다(
Character-Filter
)- 띄어쓰기로 Token을 구분한다.(
Tokenizer
)- lowercase로 구분된다.(
Token-Filter
)
Standard
Default
가 스탠다드 애널라이저whitespace
' '
(공백)으로 잘라내기만한다.keyword
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
하는건 바로 추가가 된다.