Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Elasticsearch
- 상속
- git
- elastic certified engineer
- 오버라이딩
- 형상관리
- 오버로딩
- Overloading
- 버전관리
- overriding
- dlfks
- java
Archives
- Today
- Total
엔지니어 블로그
[Elasticseach] Path Hierarachy Tokenizer 본문
Path hierachy tokenizer
Elasticsearch에서 계층적인 구조의 데이터를 다루기 위해 사용한 path hierachy 토크나이저에 대한 내용입니다.
공식문서 소개
path hierachy 토크나이저는 파일시스템과 유사한 계층적인 값을 받아 경로 구분자를 기준으로 분리하며, 트리의 각 구성요소에 대한 용어를 생성한다.
영어 원문을 직역해서 약간 어색한 감이 있지만, 계층 구조의 데이터를 구분자 기준으로 나누어 계층별로 텀을 생성해 주는 토크나이저 라고 생각하면 편하다.
실행 예시
#request
curl -X POST "localhost:9200/_analyze?pretty" -H 'Content-Type: application/json' -d'
{
"tokenizer": "path_hierarchy",
"text": "/home/elastic/elasticsearch"
}
#response
[/home,/home/elastic,/home/elastic,/home/elastic/elasticsearch]
index 생성
PUT my-index-000001
{
"mappings" : {
"properties" : {
"path" :{
"type" : "text",
"analyzer" : "path_tree",
"fields" : {
"reverse" : {
"type" : "text",
"analyzer" : "path_tree_reverse"
}
}
}
}
},
"settings": {
"analysis": {
"analyzer": {
"path_tree": {
"tokenizer": "path_tokenizer"
},
"path_tree_reverse": {
"tokenizer": "path_tokenizer_reverse"
}
},
"tokenizer": {
"path_tokenizer": {
"type": "path_hierarchy",
"delimiter": "/",
},
"path_tokenizer_reverse": {
"type": "path_hierarchy",
"delimiter": "/",
"reverse" : "true"
}
}
}
}
}
PUT my-index-000001/_doc/1
{
"path" : "/home/elastic/elasticsearch/config"
}
옵션
option | desc |
---|---|
delimiter | 구분자로 사용될 문자 지정. 기본값 '/' |
replacement | 구분자를 대체할 문자 지정(optional) |
buffer_size | 한번의 처리로 용어 버퍼로 읽는 문자의 수 |
reverse | 계층을 역순으로 출력 |
skip | 건너 뛸 초기 토큰의 수. 기본값 0 |
termvectors
termvectors를 확인해보면 다음과 같다
GET my-index-000001/_termvectors/1?fields=path
{
...
"terms": {
"/home": {
"term_freq": 1,
"tokens": [
{
"position": 0,
"start_offset": 0,
"end_offset": 5
}
]
},
"/home/elastic": {
"term_freq": 1,
"tokens": [
{
"position": 0,
"start_offset": 0,
"end_offset": 13
}
]
},
"/home/elastic/elasticsearch": {
"term_freq": 1,
"tokens": [
{
"position": 0,
"start_offset": 0,
"end_offset": 27
}
]
},
"/home/elastic/elasticsearch/config": {
"term_freq": 1,
"tokens": [
{
"position": 0,
"start_offset": 0,
"end_offset": 34
}
]
}
}
}
}
}
이 문서는 Elsaticsearch 공식 문서를 보고 작성한 내용입니다.
'ELK > elasticsearch' 카테고리의 다른 글
[Elasticsearch] Python Client로 Document Update (0) | 2023.11.17 |
---|---|
[Opensearch/Elasticsearch] 운영중인 Cluster의 재구동 방법 - Rolling Restart (0) | 2023.09.22 |
[Opensearch/Elasticserach] Opensearch/Elasticserach 오타 교정 (0) | 2023.07.03 |
[Elasticsearch] Function Score Query (0) | 2023.04.04 |
[Elasticsearch] Mustache (0) | 2023.04.04 |