안녕하세요. Nori를 설치 후 저는 어떤 방식으로 elasticsearch에 적용하는지 예시를 보여드리고자 합니다. 우선 1편을 안보고 오신 분들은 1편을 보고 간단하게 설치 후 적용까지 해보고 오시죠!
https://anygyuuuu.tistory.com/13
저는 ubuntu 기준으로 진행할 예정입니다. 정식 버전은 ubuntu 20.04 입니다.
보통 사람들은 인덱스를 만들 때 마다 mapping을 같이 넣어줍니다. 그런데 이러한 점은 매우 귀찮습니다!!!!!
그래서 특정 패턴의 인덱스가 생성되면 자동으로 해당 세팅 및 매핑으로 통일되게 만들어주세요 할 수 있는 기능이 template이라는 기능입니다.
저는 인덱스를 바로 생성하지 않고 nori를 적용한 템플릿을 먼저 넣고 해당 네이밍으로 생성되는 인덱스들은 nori를 적용할 수 있게 했습니다. 물론 인덱스를 하나 생성하면서도 할 수 있지만 template을 먼저 생성하고 진행하는 훨씬 편합니다.
저는 두가지 버전을 드리겠습니다. KIBANA에서 사용할 수 있는 버전과 서버에서 사용할 수 있는 버전입니다.
키바나를 사용하는 사람들은 서버 버전도 쉽게 얻을 수 있지만, 서버에서만 elasticsearch를 사용하는 분들은 쉽지 않기 때문에 알려드릴게요~!!
먼저 키바나 버전입니다.
예시에서 참고되는 mapping 및 세팅은 본인이 원하시는대로 변경 가능합니다. 아래의 템플릿을 사용하면 index 이름이 noritest_ 로 시작하는 인덱스들은 아래와 같은 매핑과 세팅을 가지게 됩니다.
PUT _template/noritest_template
{
"index_patterns" : [
"noritest_*"
],
"order": 1,
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1,
"index":{
"analysis":{
"tokenizer":{
"nori_mixed":{
"type":"nori_tokenizer",
"decompound_mode":"mixed"
}
},
"analyzer":{
"korean":{
"type":"custom",
"tokenizer":"nori_mixed",
"char_filter":["html_strip"]
}
}
}
}
},
"mappings": {
"properties": {
"contents" : {
"type": "text",
"analyzer":"korean"
},
"title" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"phonenumber" : {
"type" : "long"
},
"usernumber" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
}
서버 버전입니다.
curl -XPUT "본인elasticsearch주소/_template/noritest_template" -H 'Content-Type: application/json' -d'{
"index_patterns" : [
"noritest_*"
],
"order": 1,
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1,
"index":{
"analysis":{
"tokenizer":{
"nori_mixed":{
"type":"nori_tokenizer",
"decompound_mode":"mixed"
}
},
"analyzer":{
"korean":{
"type":"custom",
"tokenizer":"nori_mixed",
"char_filter":["html_strip"]
}
}
}
}
},
"mappings": {
"properties": {
"contents" : {
"type": "text",
"analyzer":"korean"
},
"title" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"phonenumber" : {
"type" : "long"
},
"usernumber" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
}'
'Elk Stack > Elasticsearch' 카테고리의 다른 글
[Elasticsearch] WSL2 서버에 elasticsearch 설치하기 (1) | 2021.10.24 |
---|---|
[Elasticsearch] 텍스트 분석 (0) | 2021.08.06 |
[Elasticsearch] 형태소 분석기 Nori 간단 설치 및 적용(1/2) (0) | 2021.08.02 |
[Elasticsearch] elasticsearch.yml 파일 세팅 및 필수 세팅 추천 (0) | 2021.07.23 |
[Elasticsearch] path.data 경로 수정 (0) | 2021.07.20 |