Reverse token filter
출처: 문서
본문
Reverse 토큰 필터
reverse 토큰 필터는 각 토큰에서 문자의 순서를 뒤집어서, 분석하는 동안 접미사 정보가 뒤집힌 토큰의 맨 앞에서 접근 가능하도록 만들어요.
이 기능은 접미사 기반 검색에 유용해요:
reverse 토큰 필터는 다음과 같은 시나리오처럼 접미사 기반 검색을 수행해야 할 때 유용해요:
- 접미사 매칭: 접미사를 기준으로 단어를 검색하는 거예요. 예를 들어 특정 어미를 가진 단어(예:
-tion또는-ing)를 찾는 경우가 여기에 해당해요. - 파일 확장자 검색:
.txt나.jpg처럼 확장자를 기준으로 파일을 검색하는 거예요. - 커스텀 정렬 또는 랭킹: 토큰을 뒤집으면 접미사를 기반으로 한 고유한 정렬이나 랭킹 로직을 구현할 수 있어요.
- 접미사 자동완성: 접두사 대신 접미사를 활용하는 자동완성 제안 기능을 구현하는 거예요.
예제
다음 예제 요청은 my-reverse-index라는 새 인덱스를 생성하고 reverse 필터가 적용된 분석기를 구성해요:
PUT /my-reverse-index
{
"settings": {
"analysis": {
"filter": {
"reverse_filter": {
"type": "reverse"
}
},
"analyzer": {
"my_reverse_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"reverse_filter"
]
}
}
}
}
}
{% include copy-curl.html %}
생성된 토큰
다음 요청을 사용해서 분석기가 생성한 토큰을 확인해 보세요:
GET /my-reverse-index/_analyze
{
"analyzer": "my_reverse_analyzer",
"text": "hello world"
}
{% include copy-curl.html %}
응답에는 생성된 토큰이 담겨 있어요:
{
"tokens": [
{
"token": "olleh",
"start_offset": 0,
"end_offset": 5,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "dlrow",
"start_offset": 6,
"end_offset": 11,
"type": "<ALPHANUM>",
"position": 1
}
]
}