N-Gram Tokenizer - 공백 혹은 구두점을 만나는 것으로 단어를 나누고, 해당 단어의 슬라이스 해서 토큰으로 만듬 ex) ngramquick → [ng, gr, ra, am, … ck] N-Gram이 2일 경우
해당 프로젝트에서는 Min N-Gram을 2, Max N-Gram을 6로 지정하여 구축했습니다.
+wild card - 와일드카드 패턴과 일치하는 용어가 포함된 문서들을 전부 리턴합니다.
curl -X PUT "<http://localhost:9200/product>" -H 'Content-Type: application/json' -d '{
"settings": {
"index" : {
"max_ngram_diff": 12
},
"analysis": {
"analyzer": {
"ngram_analyzer": {
"type": "custom",
"tokenizer": "my_ngram"
}
},
"tokenizer": {
"my_ngram": {
"type": "ngram",
"min_gram": 2,
"max_gram": 6,
"token_chars": ["letter", "digit"]
}
}
}
},
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer": "ngram_analyzer"
}
}
}
}'
처음에 Product를 만들 때 mapping과 setting을 추가해줘야 합니다. 기존에 있던 document가 있는 상태에서 할 경우 오류가 많이 발생해서 아예 기존의 Product의 Delete를 진행하고 틀을 짜고 Logstash로 다시 데이터를 삽입했습니다.