6.6.5 Unique
이 문서의 허가되지 않은 무단 복제나 배포 및 출판을 금지합니다. 본 문서의 내용 및 도표 등을 인용하고자 하는 경우 출처를 명시하고 김종민([email protected])에게 사용 내용을 알려주시기 바랍니다.
"white fox, white rabbit, white bear" 같은 문장을 분석하면 "white" 텀은 총 3번 저장이 됩니다. 역 색인에는 텀이 1개만 있어도 텀을 포함하는 도큐먼트를 가져올 수 있기 때문에 중복되는 텀 들은 삭제 해 주어도 검색에는 보통 무방합니다. 이 경우 unique 토큰 필터를 사용해서 중복되는 텀 들은 하나만 저장하도록 할 수 있습니다.
다음은 "white fox, white rabbit, white bear" 문장을 unique 토큰 필터를 적용하지 않은 경우와 적용한 경우를 비교 한 예제입니다.
request
response
일반적인 "white fox, white rabbit, white bear" 문장 분석
1
GET _analyze
2
{
3
"tokenizer": "standard",
4
"filter": [
5
"lowercase"
6
],
7
"text": [
8
"white fox, white rabbit, white bear"
9
]
10
}
Copied!
일반적인 "white fox, white rabbit, white bear" 문장 분석 결과
1
{
2
"tokens" : [
3
{
4
"token" : "white",
5
"start_offset" : 0,
6
"end_offset" : 5,
7
"type" : "<ALPHANUM>",
8
"position" : 0
9
},
10
{
11
"token" : "fox",
12
"start_offset" : 6,
13
"end_offset" : 9,
14
"type" : "<ALPHANUM>",
15
"position" : 1
16
},
17
{
18
"token" : "white",
19
"start_offset" : 11,
20
"end_offset" : 16,
21
"type" : "<ALPHANUM>",
22
"position" : 2
23
},
24
{
25
"token" : "rabbit",
26
"start_offset" : 17,
27
"end_offset" : 23,
28
"type" : "<ALPHANUM>",
29
"position" : 3
30
},
31
{
32
"token" : "white",
33
"start_offset" : 25,
34
"end_offset" : 30,
35
"type" : "<ALPHANUM>",
36
"position" : 4
37
},
38
{
39
"token" : "bear",
40
"start_offset" : 31,
41
"end_offset" : 35,
42
"type" : "<ALPHANUM>",
43
"position" : 5
44
}
45
]
46
}
Copied!
request
response
unique 토크나이저로 "white fox, white rabbit, white bear" 문장 분석
1
GET _analyze
2
{
3
"tokenizer": "standard",
4
"filter": [
5
"lowercase",
6
"unique"
7
],
8
"text": [
9
"white fox, white rabbit, white bear"
10
]
11
}
Copied!
unique 토크나이저로 "white fox, white rabbit, white bear" 문장 분석 결과
1
{
2
"tokens" : [
3
{
4
"token" : "white",
5
"start_offset" : 0,
6
"end_offset" : 5,
7
"type" : "<ALPHANUM>",
8
"position" : 0
9
},
10
{
11
"token" : "fox",
12
"start_offset" : 6,
13
"end_offset" : 9,
14
"type" : "<ALPHANUM>",
15
"position" : 1
16
},
17
{
18
"token" : "rabbit",
19
"start_offset" : 17,
20
"end_offset" : 23,
21
"type" : "<ALPHANUM>",
22
"position" : 2
23
},
24
{
25
"token" : "bear",
26
"start_offset" : 31,
27
"end_offset" : 35,
28
"type" : "<ALPHANUM>",
29
"position" : 3
30
}
31
]
32
}
Copied!
"unique" 토큰 필터를 적용하면 "white" 텀이 하나만 저장된 것을 확인할 수 있습니다.
match 쿼리를 사용해서 검색하는 경우 unique 토큰 필터를 적용한 필드는 텀의 개수가 1개로 되기 때문에 TF(Term Frequency) 값이 줄어들어 스코어 점수가 달라질 수 있습니다. match 쿼리를 이용해 정확도(relevancy) 를 따져야 하는 검색의 경우에는 unique 토큰 필터는 사용하지 않는 것이 바람직합니다.
Copy link