FacetSpec

Uma especificação de atributo para realizar uma pesquisa facetada.

Representação JSON
{
  "facetKey": {
    object (FacetKey)
  },
  "limit": integer,
  "excludedFilterKeys": [
    string
  ],
  "enableDynamicPosition": boolean
}
Campos
facetKey

object (FacetKey)

Obrigatório. A especificação da chave de faceta.

limit

integer

Número máximo de valores de atributo retornados para este atributo. Se não for especificado, o padrão será 20. O valor máximo permitido é 300. Valores acima de 300 são convertidos para 300. Para agregação na pesquisa de saúde, quando o [FacetKey.key] é "healthcare_aggregation_key", o limite é substituído por 10.000 internamente, independente do valor definido aqui.

Se esse campo for negativo, um INVALID_ARGUMENT será retornado.

excludedFilterKeys[]

string

Lista de chaves a serem excluídas ao criar facetas.

Por padrão, FacetKey.key não é excluído do filtro, a menos que esteja listado neste campo.

Listar uma chave de atributo nesse campo permite que os valores dela apareçam como resultados de atributos, mesmo quando são filtrados dos resultados da pesquisa. O uso desse campo não afeta os resultados da pesquisa retornados.

Por exemplo, suponha que haja 100 documentos com o atributo "Vermelho" e 200 documentos com o atributo "Azul". Uma consulta que contenha o filtro "color:ANY("Red")" e tenha "color" como FacetKey.key vai retornar por padrão apenas documentos "Red" nos resultados da pesquisa, além de "Red" com a contagem 100 como o único atributo de cor. Embora também haja documentos azuis disponíveis, "Azul" não seria mostrado como um valor de refinamento disponível.

Se "color" estiver listado em "excludedFilterKeys", a consulta vai retornar os valores de faceta "Red" com a contagem 100 e "Blue" com a contagem 200, porque a chave "color" agora está excluída do filtro. Como esse campo não afeta os resultados da pesquisa, eles ainda são filtrados corretamente para retornar apenas documentos "Vermelho".

São permitidos no máximo 100 valores. Caso contrário, um erro INVALID_ARGUMENT será retornado.

enableDynamicPosition

boolean

Ativa a posição dinâmica para esse atributo. Se definido como "true", a posição dessa faceta entre todas as facetas na resposta será determinada automaticamente. Se os atributos dinâmicos estiverem ativados, eles serão ordenados juntos. Se definido como "false", a posição desse atributo na resposta será a mesma da solicitação, e ele será classificado antes dos atributos com posição dinâmica ativada e de todos os atributos dinâmicos.

Por exemplo, talvez você queira que o aspecto de classificação sempre seja retornado na resposta, mas não necessariamente que ele seja exibido na parte superior. Nesse caso, defina "enableDynamicPosition" como "true" para que a posição do aspecto de classificação na resposta seja determinada automaticamente.

Outro exemplo, supondo que você tenha as seguintes facetas na solicitação:

  • "rating", enableDynamicPosition = true

  • "price", enableDynamicPosition = false

  • "brands", enableDynamicPosition = false

Além disso, você tem atributos dinâmicos ativados, o que gera um atributo gender. Então, a ordem final das facetas na resposta pode ser ("price", "brands", "rating", "gender") ou ("price", "brands", "gender", "rating") dependendo de como a API ordena as facetas "gender" e "rating". No entanto, observe que "price" e "brands" sempre são classificados na primeira e segunda posição porque o enableDynamicPosition é falso.

FacetKey

Especifica como uma faceta é calculada.

Representação JSON
{
  "key": string,
  "intervals": [
    {
      object (Interval)
    }
  ],
  "restrictedValues": [
    string
  ],
  "prefixes": [
    string
  ],
  "contains": [
    string
  ],
  "caseInsensitive": boolean,
  "orderBy": string
}
Campos
key

string

Obrigatório. Chaves de atributos textuais e numéricos aceitas no objeto Document, em que os valores de atributo são calculados. A chave de refinamento diferencia maiúsculas de minúsculas.

intervals[]

object (Interval)

Definido apenas se os valores forem agrupados em intervalos. Precisa ser definido para facetas com valores numéricos. Não pode ser definido para facetas com valores de texto. O número máximo de intervalos é 30.

restrictedValues[]

string

Recebe apenas o aspecto para os valores restritos especificados. Disponível apenas em campos de texto. Por exemplo, suponha que "category" tenha três valores: "Action > 2022", "Action > 2021" e "Sci-Fi > 2022". Se "restrictedValues" for definido como "Action > 2022", a faceta "category" vai conter apenas "Action > 2022". Disponível apenas em campos de texto. O máximo é 10.

prefixes[]

string

Recebe apenas valores de faceta que começam com o prefixo de string especificado. Por exemplo, suponha que "category" tenha três valores: "Action > 2022", "Action > 2021" e "Sci-Fi > 2022". Se você definir "prefixes" como "Action", a faceta "category" vai conter apenas "Action > 2022" e "Action > 2021". Disponível apenas em campos de texto. O máximo é 10.

contains[]

string

Recebe apenas valores de faceta que contêm as strings especificadas. Por exemplo, suponha que "category" tenha três valores: "Action > 2022", "Action > 2021" e "Sci-Fi > 2022". Se o valor "contém" for definido como "2022", a faceta "categoria" vai conter apenas "Ação > 2022" e "Ficção científica > 2022". Disponível apenas em campos de texto. O máximo é 10.

caseInsensitive

boolean

Verdadeiro para tornar as chaves de refinamento insensíveis a maiúsculas e minúsculas ao receber valores de refinamento com prefixos ou contém. Caso contrário, será falso.

orderBy

string

A ordem em que os documentos são retornados.

Os valores permitidos são:

Se não for definido, os valores textuais serão classificados em ordem natural, e os intervalos numéricos serão classificados na ordem fornecida por FacetSpec.FacetKey.intervals.