Index phrases 매핑 파라미터
Index phrases 매핑 파라미터
index_phrases 매핑 파라미터는 필드의 텍스트를 추가 처리해 구문 토큰(phrase token)을 생성할지 여부를 결정해요. 활성화하면 정확히 두 개의 연속된 단어의 시퀀스(bigram)를 나타내는 추가 토큰이 생성돼요.
출처: 문서
본문
index_phrases 매핑 파라미터는 필드의 텍스트를 추가 처리해 구문 토큰을 생성할지 여부를 결정합니다. 활성화하면 시스템이 정확히 두 개의 연속된 단어 시퀀스(bigram)를 나타내는 추가 토큰을 생성합니다. 이는 구문 쿼리의 성능과 정확성을 크게 향상시킬 수 있습니다. 그러나 인덱스 크기와 문서 인덱싱에 필요한 시간도 증가시킵니다.
기본적으로 index_phrases는 false로 설정되어 더 가벼운 인덱스와 더 빠른 문서 수집을 유지합니다.
필드에서 index phrases 활성화
다음 예제는 content 필드가 index_phrases로 구성된 blog라는 인덱스를 만듭니다.
PUT /blog
{
"mappings": {
"properties": {
"content": {
"type": "text",
"index_phrases": true
}
}
}
}
다음 요청을 사용해 문서를 인덱싱합니다.
PUT /blog/_doc/1
{
"content": "The slow green turtle swims past the whale"
}
다음 검색 요청을 사용해 match_phrase 쿼리를 수행합니다.
POST /blog/_search
{
"query": {
"match_phrase": {
"content": "slow green"
}
}
}
쿼리는 저장된 문서를 반환합니다.
{
"took": 25,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 0.5753642,
"hits": [
{
"_index": "blog",
"_id": "1",
"_score": 0.5753642,
"_source": {
"content": "The slow green turtle swims past the whale"
}
}
]
}
}
index_phrases 매핑 파라미터를 제공하지 않아도 같은 hit가 반환되지만, 이 파라미터를 사용하면 쿼리가 다음과 같이 수행됩니다.
- 내부적으로
.index_phrases필드를 사용합니다. - "slow green", "green turtle", "turtle swims" 같은 사전 토큰화된 bigram과 매칭됩니다.
- 위치 조회를 우회하므로 특히 규모가 클 때 더 빠릅니다.