일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 20055 컨베이어 벨트 위의 로봇
- 스프링 컨테이너와 스프링 빈
- 7장 고급매핑
- 백준
- 객체 지향 설계와 스프링
- 고급매핑
- 스프링 핵심 원리 이해
- Kotlin in action 5장
- 기능개발 python
- 스프링 핵심 원리 - 기본편
- Kotlin in action 6장
- 스프링 핵심 원리
- 백준 20055 컨베이어 벨트 위의 로봇
- 20055
- KotlinInAction
- 코틀린인액션
- Kotlin
- spring
- Kotlin In Action
- 싱글톤 컨테이너
- 자바 ORM 표준 JPA 프로그래밍 7장
- Python
- kotlin in action 정리
- 컨베이어 벨트 위의 로봇 Python
- 코틸린인액션
- Kotlin in action 10장
- 코틀린
- Kotlin in action 3장
- 백준 13460 Python
- 13460 구슬탈출 2
- Today
- Total
기록하는 습관
Elasticsearch (10) - English 분석 본문
ES with English 분석
분석 문장: “It's my PReTty.hat_Yellow! $20.12 15.5% on sale. i ate pizza”
** Tokenizer로 분류
1. Standard
공백으로 텀을 구분하면서 일부 특수문자 제거
Filter | Result | 분석 속도 |
- | It’s my, PReTty.hat_Yellow, 20.12, 15.5, on, sale, i, ate, pizza | 4ms |
lowercase | It's, my, pretty.hat_yellow, 20.12, 15.5, on, sale, i, ate, pizza | 4ms |
Stemmer | It’, my, PReTty.hat_Yellow, 20.12, 15.5, on, sale, i, at, pizza 특징: It’s -> It’, ate -> at |
4ms |
1.lowercase 2.stop |
It’s, my, pretty.hat_yellow, 20.12, 15.5, sale, i, ate, pizza 특징: 기본 불용어 “on” 제거. Elastic에서 기본적으로 제공하는 영어 불용어는 소문자이기 때문에 lowercase filter를 거쳐야 한다. |
4ms |
· 의문. Stemmer 필터를 거치면 ate -> at이 되어 버림.
2. Letter
알파벳을 제외한 모든 공백, 숫자, 기호들을 기준으로 텀을 분리
Filter | Result | 분석 속도 |
- | It, s, my, PReTty, hat, Yellow, on, sale, i, ate, pizza | 4ms |
lowercase | it, s, my, pretty, hat, yellow, on, sale, i, ate, pizza | 4ms |
Stemmer | It, s, my, PReTti, hat, Yellow, on, sale, i, at, pizza 특징: pretty -> pretti, ate -> at |
4ms |
1.lowercase 2.stop |
s, my, pretty, hat, yellow, sale, i, ate, pizza 특징: 기본 불용어 “it”, “on” 제거. |
3ms |
3. Whitespace
스페이스, 탭, 줄바꿈 같은 공백만을 기준으로 텀을 분리
Filter | Result | 분석 속도 |
- | It’s, my, PReTty.hat_Yellow!, $20.12, 15.5%, on, sale., i, ate, pizza | 4ms |
lowercase | It’s, my, pretty.hat_yellow!, $20.12, 15.5%, on, sale., i, ate, pizza | 3ms |
Stemmer | It’, my, PReTty.hat_Yellow!, $20.12, 15.5%, on, sale., i, at, pizza 특징: It’s -> It’, ate -> at |
4ms |
1.lowercase 2.stop |
it's, my, pretty.hat_yellow!, $20.12, 15.5%, sale., i, ate, pizza 특징: 기본 불용어 “on” 제거. |
3ms |
** Standard, Whitespace는 It’s가 분리가 안되지만 letter는 It으로 분리가 되어 stop 필터를 거치면 불용어 제거 처리가 된다.
4. Ngram
N글자씩 토큰화 하는 필터
적용한 옵션: "tokenizer": {
"type": "ngram",
"min_gram": 2,
"max_gram": 3,
"token_chars": [
"letter",
"digit"
]
},
Filter | Result | 분석 속도 |
lowercase | it, my, pr, pre, re, ret, et, ett, tt, tty, ty, ha, hat, at, ye, yel, el, ell, ll, llo, lo, low, ow, 20, 12, 15, on, sa, sal, al, ale, le, at, ate, te, pi, piz, iz, izz, zz, zza, za | 4ms |
1.lowercase 2.Stemmer |
lowercase와 동일 | 3ms |
1.lowercase 2.stop |
my, pr, pre, re, ret, et, ett, tt, tty, ty, ha, hat, ye, yel, el, ell, ll, llo, lo, low, ow, 20, 12, 15, sa, sal, al, ale, le, ate, te, pi, piz, iz, izz, zz, zza, za 특징: it, at, on, at 제거 |
4ms |
5. Edge ngram
텀 앞쪽의 ngram만 저장하기 위한 토크나이저
Filter | Result | 분석 속도 |
lowercase | it, my, pr, pre, ha, hat, ye, yel, 20, 12, 15, on, sa, sal, at, ate, pi, piz | 4ms |
1.lowercase 2.Stemmer |
it, my, pr, pre, ha, hat, ye, yel, 20, 12, 15, on, sa, sal, at, at, pi, piz 특징: ate -> at |
4ms |
1.lowercase 2.stop |
my, pr, pre, ha, hat, ye, yel, 20, 12, 15, sa, sal, ate, pi, piz 특징: it, at, on, at 제거 |
3ms |
6. Keyword
텍스트를 하나의 토큰으로 만듦.
Filter | Result | 분석 속도 |
- | It's my PReTty.hat_Yellow! $20.12 15.5% on sale. i ate pizza | 4ms |
lowercase | it's my pretty.hat_yellow! $20.12 15.5% on sale. i ate pizza | 3ms |
Stemmer | It's my PReTty.hat_Yellow! $20.12 15.5% on sale. i ate pizza | 4ms |
1.lowercase 2.stop |
it's my pretty.hat_yellow! $20.12 15.5% on sale. i ate pizza | 4ms |
분석 문장: <p>Nice to Meet you~ >< ♥hahaha♥</p>
** Tokenizer로 분류
1. Standard
공백으로 텀을 구분하면서 일부 특수문자 제거
전체 적용: char_filter: html_strip
Filter | Result | 분석 속도 |
html_strip | Nice, to, Meet, you, ♥, hahaha, ♥ | 4ms |
lowercase | nice, to, meet, you, ♥, hahaha, ♥ |
4ms |
Stemmer | Nice, to, Meet, you, ♥, hahaha, ♥ | 4ms |
1.lowercase 2.stop |
nice, meet, you, ♥, hahaha, ♥ 특징: 기본 불용어 “to” 제거. Elastic에서 기본적으로 제공하는 영어 불용어는 소문자이기 때문에 lowercase filter를 거쳐야 한다. |
4ms |
2. Letter
알파벳을 제외한 모든 공백, 숫자, 기호들을 기준으로 텀을 분리
Filter | Result | 분석 속도 |
- | Nice, to, Meet, you~, ><, ♥hahaha♥ | 4ms |
lowercase | nice, to, meet, you~, ><, ♥hahaha♥ | 4ms |
Stemmer | Nice, to, Meet, you~, ><, ♥hahaha♥ | 4ms |
1.lowercase 2.stop |
nice, meet, you, hahaha | 3ms |
3. Whitespace
스페이스, 탭, 줄바꿈 같은 공백만을 기준으로 텀을 분리
Filter | Result | 분석 속도 |
- | Nice, to, Meet, you~, ><, ♥hahaha♥ | 4ms |
lowercase | nice, to, meet, you~, ><, ♥hahaha♥ | 3ms |
Stemmer | Nice, to, Meet, you~, ><, ♥hahaha♥ | 4ms |
1.lowercase 2.stop |
nice, meet, you~, ><, ♥hahaha♥ | 3ms |
4. Ngram
N글자씩 토큰화 하는 필터
적용한 옵션: "tokenizer": {
"type": "ngram",
"min_gram": 2,
"max_gram": 3,
"token_chars": [
"letter",
"digit"
]
},
Filter | Result | 분석 속도 |
lowercase | ni, nic, ic, ice, ce, to, me, mee, ee, eet, et, yo, you, ou, ha, hah, ah, aha, ha, hah, ah, aha, ha | 4ms |
1.lowercase 2.Stemmer |
lowercase와 동일 | 3ms |
1.lowercase 2.stop |
ni, nic, ic, ice, ce, me, mee, ee, eet, et, yo, you, ou, ha, hah, ah, aha, ha, hah, ah, aha, ha 특징: to 제거 |
4ms |
7. Edge ngram
텀 앞쪽의 ngram만 저장하기 위한 토크나이저
Filter | Result | 분석 속도 |
lowercase | ni, nic, to, me, mee, yo, you, ha, hah | 4ms |
1.lowercase 2.Stemmer |
ni, nic, to, me, mee, yo, you, ha, hah | 4ms |
1.lowercase 2.stop |
ni, nic, me, mee, yo, you, ha, hah 특징: to 제거 |
4ms |
색인과 검색 시 분석기를 따로 설정하기
example1 인덱스 색인
- lower_test_analyzer
- stop_test_analyzer
- edgeNGram_test_analyzer
"analyzer":"stop_test_analyzer",
"search_analyzer": "lower_test_analyzer"
** text: <p>Nice to Meet you~ >< ♥hahaha♥</p>
색인 수행 시: nice ,meet, you, ♥, hahaha, ♥
-> “to” 라는 불용어가 제거되는 것을 볼 수 있음
'개발 > Elasticsearch' 카테고리의 다른 글
Elasticsearch (12) - Update By Query vs. Reindex (0) | 2022.07.16 |
---|---|
Elasticsearch (11) - 색인기 (0) | 2022.07.13 |
Elasticsearch (9) - Elasticsearch Client (0) | 2022.07.06 |
Elasticsearch (8) - Elasticsearch Shard 최적화 (0) | 2022.07.06 |
Elasticsearch (7) - Elasticsearch와 Lucene (0) | 2022.07.06 |