6주 동안 실전 프로젝트를 진행하면서 학습한 내용을 기록하고, 팀의 리더로서 프로젝트 매니징 경험을 기록하는 시리즈입니다.
PUT non-english-test4
{
"settings": {
"index": { //1️⃣샤드 수는 클러스터 설계가 완료된 후 변경할 계획입니다.
"number_of_shards": 1,
"number_of_replicas": 1
},
"analysis": {
"analyzer": { // 2️⃣애널라이저
"non_english_analyzer": {
"tokenizer": "standard",
"filter": ["lowercase", "stopword"]
},
"number_analyzer" : {
"type" : "pattern",
"pattern" :"[.]"
},
"country_analyzer": {
"tokenizer": "standard",
"filter": ["synonym"]
}
},
"filter": { // 3️⃣ 토큰 필터
"synonym": {
"type": "synonym",
"synonyms_path": "user_dic/non_eng_syn.txt"
},
"stopword" : {
"type" : "stop",
"stopwords_path" : "user_dic/non_eng_stopwords.txt"
}
}
}
},
"mappings": {
"properties": { //4️⃣ 필드에 데이터 타입 매핑
"CPC분류": {
"type": "text"
},
"IPC분류": {
"type": "text"
},
"event": {
"properties": {
"original": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
},
"log": {
"properties": {
"file": {
"properties": {
"path": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
},
"공개번호": {
"type": "keyword"
},
"공고번호": {
"type": "keyword"
},
"등록번호": {
"type": "keyword"
},
"발명의명칭": {
"type": "text",
"analyzer": "non_english_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"국가": {
"type": "text",
"analyzer": "country_analyzer"
},
"요약": {
"type": "text",
"analyzer": "non_english_analyzer"
},
"출원번호": {
"type": "keyword"
},
"출원인": {
"type": "text",
"analyzer": "non_english_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"출원일자": {
"type": "text",
"analyzer": "number_analyzer",
"fields": {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
}
[발명의명칭], [출원인], [요약] 필드의 데이터에 custom analyzer를 적용하였습니다.
토크나이저는 standard이고, 토큰 필터는 lowercase, stopword를 사용하였습니다.
[출원일자] 필드의 데이터는 ‘2022.09.21’의 형태를 가집니다.
그 중에서 연도(2022)만 추출하기 위해 패턴 “[.]”을 기준으로 텍스트를 분리하는 패턴 애널라이저를 적용했습니다.
[국가] 필드의 데이터는 ‘RU(러시아), DK(덴마크)’ 등의 국가코드입니다.
한국어로 검색할 수 있도록 하기 위해 국가 코드를 한국어로 치환하였습니다.
국가 코드를 한국어로 치환하는 동의어 사전을 만들고, 경로를 지정하였습니다.
# sysnonyms setting in sysnonyms.txt
# replacement
RU => 러시아
AT => 오스트리아
DK => 덴마크
PT => 포르투갈
CH => 스위스
PL => 폴란드
SI => 슬로베니아
CO => 콜롬비아
EA => 유라시아
RS => 세르비아
루씬에 이미 정의된 불용어 리스트를 모아서 불용어 사전을 만들고, 경로를 지정하였습니다.
brazilian
(Brazilian Portuguese), danish
, portuguese
, russian