FacetSpec

패싯 검색을 수행할 패싯 사양입니다.

JSON 표현
{
  "facetKey": {
    object (FacetKey)
  },
  "limit": integer,
  "excludedFilterKeys": [
    string
  ],
  "enableDynamicPosition": boolean
}
필드
facetKey

object (FacetKey)

필수 항목입니다. 패싯 키 사양입니다.

limit

integer

이 패싯에 대해 반환되는 최대 패싯 값입니다. 지정하지 않으면 기본값은 20입니다. 허용되는 최댓값은 300입니다. 300을 초과하는 값은 300으로 변환됩니다. 의료 검색의 집계에서 [FacetKey.key] 가 'healthcare_aggregation_key'인 경우 여기에 설정된 값과 관계없이 한도가 내부적으로 10,000으로 재정의됩니다.

이 필드가 음수이면 INVALID_ARGUMENT이 반환됩니다.

excludedFilterKeys[]

string

패싯 생성 시 제외할 키 목록입니다.

기본적으로 FacetKey.key는 이 필드에 나열되지 않는 한 필터에서 제외되지 않습니다.

이 필드에 속성 키를 나열하면 검색 결과에서 필터링되더라도 값이 속성 결과로 표시될 수 있습니다. 이 필드를 사용해도 반환되는 검색 결과에는 영향을 미치지 않습니다.

예를 들어 색상 패싯이 'Red'인 문서가 100개 있고 색상 패싯이 'Blue'인 문서가 200개 있다고 가정해 보겠습니다. 'color:ANY("Red")' 필터가 포함되어 있고 'color'가 FacetKey.key인 쿼리는 기본적으로 검색 결과에서 'Red' 문서만 반환하고 'Red'를 개수 100의 유일한 색상 패싯으로 반환합니다. 파란색 문서도 있지만 '파란색'은 사용 가능한 패싯 값으로 표시되지 않습니다.

'color'가 'excludedFilterKeys'에 나열된 경우 이제 'color' 키가 필터에서 제외되므로 쿼리는 개수가 100인 'Red'와 개수가 200인 'Blue'를 모두 반환합니다. 이 필드는 검색 결과에 영향을 미치지 않으므로 검색 결과는 여전히 'Red' 문서만 반환하도록 올바르게 필터링됩니다.

최대 100개의 값이 허용됩니다. 그렇지 않으면 INVALID_ARGUMENT 오류가 반환됩니다.

enableDynamicPosition

boolean

이 패싯의 동적 위치를 사용 설정합니다. true로 설정하면 응답의 모든 패싯 중에서 이 패싯의 위치가 자동으로 결정됩니다. 동적 패싯이 사용 설정된 경우 함께 정렬됩니다. false로 설정하면 응답에서 이 패싯의 위치가 요청과 동일하며 동적 위치가 사용 설정된 패싯 및 모든 동적 패싯보다 순위가 높습니다.

예를 들어 항상 대답에 평가 패싯이 반환되기를 원하지만 평가 패싯을 항상 상단에 표시할 필요는 없습니다. 이 경우 응답의 평점 패싯 위치가 자동으로 결정되도록 enableDynamicPosition을 true로 설정할 수 있습니다.

또 다른 예로 요청에 다음 패싯이 있다고 가정해 보겠습니다.

  • 'rating', enableDynamicPosition = true

  • 'price', enableDynamicPosition = false

  • 'brands', enableDynamicPosition = false

또한 동적 패싯이 사용 설정되어 있어 패싯 gender가 생성됩니다. 그런 다음 응답의 최종 상품 속성 순서는 API가 '성별' 및 '평점' 상품 속성을 정렬하는 방식에 따라 ("가격", "브랜드", "평점", "성별") 또는 ("가격", "브랜드", "성별", "평점")이 될 수 있습니다. 하지만 enableDynamicPosition이 false이므로 'price'와 'brands'는 항상 1위와 2위로 표시됩니다.

FacetKey

패싯을 계산하는 방법을 지정합니다.

JSON 표현
{
  "key": string,
  "intervals": [
    {
      object (Interval)
    }
  ],
  "restrictedValues": [
    string
  ],
  "prefixes": [
    string
  ],
  "contains": [
    string
  ],
  "caseInsensitive": boolean,
  "orderBy": string
}
필드
key

string

필수 항목입니다. Document 객체에서 지원되는 텍스트 및 숫자 패싯 키로, 이 키를 기준으로 패싯 값이 계산됩니다. 패싯 키는 대소문자를 구분합니다.

intervals[]

object (Interval)

값을 간격으로 버킷팅해야 하는 경우에만 설정합니다. 숫자 값이 있는 패싯에 설정해야 합니다. 텍스트 값이 있는 패싯에 설정하면 안 됩니다. 최대 간격 수는 30입니다.

restrictedValues[]

string

지정된 제한된 값에 대한 패싯만 가져옵니다. 텍스트 필드에서만 지원됩니다. 예를 들어 'category'에 'Action > 2022', 'Action > 2021', 'Sci-Fi > 2022'라는 세 가지 값이 있다고 가정해 보겠습니다. 'restrictedValues'를 'Action > 2022'로 설정하면 'category' 패싯에는 'Action > 2022'만 포함됩니다. 텍스트 필드에서만 지원됩니다. 최댓값은 10입니다.

prefixes[]

string

지정된 문자열 프리픽스로 시작하는 패싯 값만 가져옵니다. 예를 들어 'category'에 'Action > 2022', 'Action > 2021', 'Sci-Fi > 2022'라는 세 가지 값이 있다고 가정해 보겠습니다. 'prefixes'를 'Action'으로 설정하면 'category' 패싯에는 'Action > 2022' 및 'Action > 2021'만 포함됩니다. 텍스트 필드에서만 지원됩니다. 최댓값은 10입니다.

contains[]

string

지정된 문자열이 포함된 패싯 값만 가져옵니다. 예를 들어 'category'에 'Action > 2022', 'Action > 2021', 'Sci-Fi > 2022'라는 세 가지 값이 있다고 가정해 보겠습니다. 'contains'를 '2022'로 설정하면 'category' 패싯에는 'Action > 2022' 및 'Sci-Fi > 2022'만 포함됩니다. 텍스트 필드에서만 지원됩니다. 최댓값은 10입니다.

caseInsensitive

boolean

접두사 또는 포함으로 패싯 값을 가져올 때 패싯 키를 대소문자를 구분하지 않도록 하려면 true이고, 그렇지 않으면 false입니다.

orderBy

string

문서가 반환되는 순서입니다.

허용되는 값은 다음과 같습니다.

설정하지 않으면 텍스트 값은 일반적인 순서로 정렬되고, 숫자 간격은 FacetSpec.FacetKey.intervals에 의해 지정된 순서로 정렬됩니다.