국어사전검색을 구현하는 프로젝트를 만들어보자!!
sample Dataset
{
"voca":"가위",//[0]
"isNative":"한자어",//[2]
"partOfSpeech": "명사",//[10]
"meaning":"옷감, 종이, 머리털 따위를 자르는 기구...", //[15]
"category":"일반어", //[17]3
}
출처 : 표준 국어 대사전
PUT _template/dic_template
{
"index_patterns": ["dic*"],
"settings": {
"index": {
"number_of_shards": 5,
"number_of_replicas": 0
},
"analysis": {
"analyzer": {
"ngram_analyzer": {
"type": "custom",
"tokenizer": "ngram_tokenizer",
"filter": [
"lowercase",
"trim"
]
},
"edge_ngram_analyzer": {
"type": "custom",
"tokenizer": "edge_ngram_tokenizer",
"filter": [
"lowercase",
"trim",
"edge_ngram_filter_front"
]
},
"edge_ngram_analyzer_back": {
"type": "custom",
"tokenizer": "edge_ngram_tokenizer",
"filter": [
"lowercase",
"trim",
"edge_ngram_filter_back"
]
}
},
"tokenizer": {
"ngram_tokenizer": {
"type": "nGram",
"min_gram": "1",
"max_gram": "50",
"token_chars": [
"letter",
"digit",
"punctuation",
"symbol"
]
},
"edge_ngram_tokenizer": {
"type": "edgeNGram",
"min_gram": "1",
"max_gram": "50",
"token_chars": [
"letter",
"digit",
"punctuation",
"symbol"
]
}
},
"filter": {
"edge_ngram_filter_front": {
"type": "edgeNGram",
"min_gram": "1",
"max_gram": "50",
"side": "front"
},
"edge_ngram_filter_back": {
"type": "edgeNGram",
"min_gram": "1",
"max_gram": "50",
"side": "back"
}
}
}
},
"mappings": {
"_doc": {
"properties": {
"voca": {
"type": "text",
"analyzer": "ngram_analyzer",
"search_analyzer": "ngram_analyzer",
"boost": 3
},
"isNative": {
"type": "keyword"
},
"partOfSpeech": {
"type": "keyword"
},
"meaning": {
"type": "text",
"analyzer": "edge_ngram_analyzer",
"search_analyzer": "edge_ngram_analyzer"
},
"category": {
"type": "keyword"
}
}
}
}
}
인덱스 생성 및 예제 데이터 삽입
PUT dic_korean
POST dic_korean/_doc/1
{
"voca":"가위",
"isNative":"한자어",
"partOfSpeech": "명사",
"meaning":"옷감, 종이, 머리털 따위를 자르는 기구...",
"category":"일반어"
}
GET dic_korean/_mapping
데이터 검색 확인
GET dic_korean/_search
{
"query": {
"bool": {
"should": [
{
"term": {
"voca": "가위"
}
}
]
}
}
}
GET dic_korean/_search
{
"query": {
"bool": {
"should": [
{
"term": {
"meaning": "자르"
}
}
]
}
}
}
'BackEnd > ElasticSearch' 카테고리의 다른 글
사전 만들기 프로젝트(3)-전처리된 데이터를 삽입해보자 (0) | 2019.06.29 |
---|---|
사전 만들기 프로젝트(2)-Prepare Data (0) | 2019.06.29 |
[Elasticsearch] failed to obtain node locks (0) | 2019.06.21 |
SuggestAPI 소개 (0) | 2019.06.10 |
Nori 사용 해서 노래 가사 검색하기 (0) | 2019.06.10 |