Keyword marker token filter
출처: 문서
본문
키워드 마커 토큰 필터
keyword_marker 토큰 필터는 특정 토큰이 어간 추출기나 다른 필터에 의해 변경되는 것을 방지하는 데 사용돼요. keyword_marker 토큰 필터는 지정된 토큰을 keywords로 표시하여 어간 추출이나 다른 처리를 방지해요. 이를 통해 특정 단어가 원래 형태를 유지할 수 있어요.
파라미터
keyword_marker 토큰 필터는 다음 파라미터로 구성할 수 있어요.
| 파라미터 | 필수/선택 | 데이터 유형 | 설명 |
|---|---|---|---|
ignore_case |
선택 | Boolean | 키워드를 일치시킬 때 대소문자를 무시할지 여부예요. 기본값은 false예요. |
keywords |
keywords_path 또는 keywords_pattern이 설정되지 않은 경우 필수 |
List of strings | 키워드로 표시할 토큰 목록이에요. |
keywords_path |
keywords 또는 keywords_pattern이 설정되지 않은 경우 필수 |
String | 키워드 목록의 경로(config 디렉터리 기준 상대 경로 또는 절대 경로)예요. |
keywords_pattern |
keywords 또는 keywords_path가 설정되지 않은 경우 필수 |
String | 키워드로 표시할 토큰을 일치시키는 데 사용되는 정규 표현식이에요. |
예제
다음 예제 요청은 my_index라는 새 인덱스를 생성하고 keyword_marker 필터로 분석기를 구성해요. 이 필터는 example이라는 단어를 키워드로 표시해요.
PUT /my_index
{
"settings": {
"analysis": {
"analyzer": {
"custom_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": ["lowercase", "keyword_marker_filter", "stemmer"]
}
},
"filter": {
"keyword_marker_filter": {
"type": "keyword_marker",
"keywords": ["example"]
}
}
}
}
}
{% include copy-curl.html %}
생성된 토큰
다음 요청을 사용하여 분석기로 생성된 토큰을 확인하세요.
GET /my_index/_analyze
{
"analyzer": "custom_analyzer",
"text": "Favorite example"
}
{% include copy-curl.html %}
응답에는 생성된 토큰이 포함돼요. favorite라는 단어는 어간 추출이 되었지만 example이라는 단어는 키워드로 표시되었기 때문에 어간 추출이 되지 않았어요.
{
"tokens": [
{
"token": "favorit",
"start_offset": 0,
"end_offset": 8,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "example",
"start_offset": 9,
"end_offset": 16,
"type": "<ALPHANUM>",
"position": 1
}
]
}
_analyze 쿼리에 다음 파라미터를 추가하여 keyword_marker 토큰 필터의 영향을 더 자세히 확인할 수 있어요.
GET /my_index/_analyze
{
"analyzer": "custom_analyzer",
"text": "This is an OpenSearch example demonstrating keyword marker.",
"explain": true,
"attributes": "keyword"
}
{% include copy-curl.html %}
그러면 다음과 유사한 추가 세부 정보가 응답에 포함돼요.
{
"name": "porter_stem",
"tokens": [
...
{
"token": "example",
"start_offset": 22,
"end_offset": 29,
"type": "<ALPHANUM>",
"position": 4,
"keyword": true
},
{
"token": "demonstr",
"start_offset": 30,
"end_offset": 43,
"type": "<ALPHANUM>",
"position": 5,
"keyword": false
},
...
]
}