span_first 쿼리

span_first 쿼리

span_first 쿼리는 필드의 시작 지점에서 시작해 지정된 위치 수 안에 끝나는 스팬을 매치해요. 이 쿼리는 문서 시작 부분 근처에 나타나는 용어나 구를 찾을 때 유용합니다.

예를 들어 span_first 쿼리를 사용해 다음 검색을 수행할 수 있어요.

  • 특정 용어가 필드의 처음 몇 단어 안에 나타나는 문서 찾기
  • 특정 구가 텍스트의 시작 부분이나 그 근처에 오도록 보장하기
  • 패턴이 시작 지점부터 지정된 거리 안에 나타날 때만 매치하기

출처: 문서

본문

예제 (Example)

이 섹션의 예제를 실행하려면 설정(setup) 단계를 완료하세요.

다음 쿼리는 description의 처음 4개 위치 안에 나타나는 stemmed 단어 "dress"를 검색해요.

GET /clothing/_search
{
  "query": {
    "span_first": {
      "match": {
        "span_term": {
          "description.stemmed": "dress"
        }
      },
      "end": 4
    }
  }
}

이 쿼리는 문서 1과 문서 2를 매치해요.

  • 문서 1과 2는 세 번째 위치에 dress라는 단어가 있어요("Long-sleeved dress…"와 "Beautiful long dress"). 단어 인덱싱은 0부터 시작하므로 "dress"라는 단어는 위치 2에 있어요.
  • dress라는 단어의 위치는 end 파라미터에 지정된 대로 4보다 작아야 해요.

응답:

{
  "took": 13,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 2,
      "relation": "eq"
    },
    "max_score": 0.110377684,
    "hits": [
      {
        "_index": "clothing",
        "_id": "1",
        "_score": 0.110377684,
        "_source": {
          "description": "Long-sleeved dress shirt with a formal collar and button cuffs. "
        }
      },
      {
        "_index": "clothing",
        "_id": "2",
        "_score": 0.110377684,
        "_source": {
          "description": "Beautiful long dress in red silk, perfect for formal events."
        }
      }
    ]
  }
}

match 파라미터는 모든 유형의 span 쿼리를 포함할 수 있어, 필드 시작 부분에서 더 복잡한 패턴을 매치할 수 있어요.

파라미터 (Parameters)

다음 표는 span_first 쿼리가 지원하는 모든 최상위 파라미터를 나열해요. 모든 파라미터는 필수예요.

  • match (Object): 매치할 span 쿼리예요. 필드 시작 부분에서 검색하려는 패턴을 정의해요.
  • end (Integer): span 쿼리 일치에 허용되는 최대 끝 위치(배타적)예요. 예를 들어 end: 4는 위치 0~3에 있는 용어를 매치해요.

더 알아보기 (Learn more)