span_within 쿼리

span_within 쿼리

span_within 쿼리는 다른 span 쿼리로 둘러싸인 스팬을 매치해요. span_containing의 반대로, span_containing은 작은 스팬을 포함하는 더 큰 스팬을 반환하는 반면 span_within은 큰 스팬으로 둘러싸인 작은 스팬을 반환해요.

예를 들어 span_within 쿼리를 사용해 다음을 할 수 있어요.

  • 더 긴 구 안에 나타나는 더 짧은 구 찾기
  • 특정 컨텍스트 안에서 발생하는 용어 매치하기
  • 더 큰 패턴으로 둘러싸인 더 작은 패턴 식별하기

출처: 문서

본문

예제 (Example)

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

다음 쿼리는 "shirt"와 "long"을 포함하는 스팬 안에 나타날 때 "dress"라는 단어를 검색해요.

GET /clothing/_search
{
  "query": {
    "span_within": {
      "little": {
        "span_term": {
          "description": "dress"
        }
      },
      "big": {
        "span_near": {
          "clauses": [
            {
              "span_term": {
                "description": "shirt"
              }
            },
            {
              "span_term": {
                "description": "long"
              }
            }
          ],
          "slop": 2,
          "in_order": false
        }
      }
    }
  }
}

이 쿼리는 다음 이유로 문서 1을 매치해요.

  • "dress"라는 단어가 더 큰 스팬("Long-sleeved dress shirt…") 안에 나타나요.
  • 더 큰 스팬은 서로 2단어 안에 있는 "shirt"와 "long"을 포함해요(둘 사이에 2개 단어가 있음).

응답:

{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 1.4677674,
    "hits": [
      {
        "_index": "clothing",
        "_id": "1",
        "_score": 1.4677674,
        "_source": {
          "description": "Long-sleeved dress shirt with a formal collar and button cuffs. "
        }
      }
    ]
  }
}

파라미터 (Parameters)

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

  • little (Object): big 스팬 안에 포함되어야 하는 span 쿼리예요. 더 큰 컨텍스트 안에서 검색하려는 스팬을 정의해요.
  • big (Object): little 스팬이 나타나야 하는 경계를 정의하는 포함 span 쿼리예요. 검색의 컨텍스트를 설정해요.

더 알아보기 (Learn more)