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과 매칭됩니다.
  • 위치 조회를 우회하므로 특히 규모가 클 때 더 빠릅니다.

더 알아보기 (Learn more)