FacetSpec

Uma especificação de faceta para realizar uma pesquisa com filtros.

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

Valores máximos de facetas devolvidos para esta faceta. Se não for especificado, a predefinição é 20. O valor máximo permitido é 300. Os valores acima de 300 são forçados a 300. Para a agregação na pesquisa de cuidados de saúde, quando [FacetKey.key] é "healthcare_aggregation_key", o limite é substituído internamente por 10 000, independentemente do valor definido aqui.

Se este campo for negativo, é devolvido um INVALID_ARGUMENT.

excludedFilterKeys[]

string

Lista de chaves a excluir ao usar a segmentação detalhada.

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

A inclusão de uma chave de atributo neste campo permite que os respetivos valores apareçam como resultados de atributos, mesmo quando são filtrados dos resultados da pesquisa. A utilização deste campo não afeta os resultados da pesquisa devolvidos.

Por exemplo, suponhamos que existem 100 documentos com a faceta de cor "Vermelho" e 200 documentos com a faceta de cor "Azul". Uma consulta que contenha o filtro "color:ANY("Red")" e que tenha "color" como FacetKey.key devolve, por predefinição, apenas documentos "Red" nos resultados da pesquisa e também devolve "Red" com a contagem 100 como a única faceta de cor. Embora também estejam disponíveis documentos azuis, "Azul" não seria apresentado como um valor de faceta disponível.

Se "color" estiver listado em "excludedFilterKeys", a consulta devolve os valores da faceta "Red" com a contagem 100 e "Blue" com a contagem 200, porque a chave "color" está agora excluída do filtro. Uma vez que este campo não afeta os resultados da pesquisa, os resultados da pesquisa continuam a ser filtrados corretamente para devolver apenas documentos "Vermelho".

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

enableDynamicPosition

boolean

Ativa a posição dinâmica para esta faceta. Se estiver definido como verdadeiro, a posição deste aspeto entre todos os aspetos na resposta é determinada automaticamente. Se as facetas dinâmicas estiverem ativadas, são ordenadas em conjunto. Se for definido como falso, a posição deste aspeto na resposta é a mesma que no pedido, e é classificado antes dos aspetos com a posição dinâmica ativada e de todos os aspetos dinâmicos.

Por exemplo, pode querer sempre que a faceta de classificação seja devolvida na resposta, mas não é necessariamente para apresentar sempre a faceta de classificação na parte superior. Nesse caso, pode definir enableDynamicPosition como verdadeiro para que a posição do aspeto de classificação na resposta seja determinada automaticamente.

Outro exemplo, partindo do princípio de que tem as seguintes facetas no pedido:

  • "rating", enableDynamicPosition = true

  • "price", enableDynamicPosition = false

  • "brands", enableDynamicPosition = false

Além disso, tem facetas dinâmicas ativadas, o que gera uma faceta gender. Em seguida, a ordem final das facetas na resposta pode ser ("price", "brands", "rating", "gender") ou ("price", "brands", "gender", "rating"), dependendo da forma como a API ordena as facetas "gender" e "rating". No entanto, repare que "price" e "brands" estão sempre classificados na primeira e segunda posição, respetivamente, porque o enableDynamicPosition é falso.

FacetKey

Especifica como é calculado um aspeto.

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 facetas textuais e numéricas suportadas no objeto Document, sobre as quais os valores das facetas são calculados. A chave de faceta é sensível a maiúsculas e minúsculas.

intervals[]

object (Interval)

Defina apenas se os valores devem ser agrupados em intervalos. Tem de ser definido para facetas com valores numéricos. Não pode ser definido para uma faceta com valores de texto. O número máximo de intervalos é 30.

restrictedValues[]

string

Apenas recebe a faceta para os valores restritos especificados. Só é suportado em campos de texto. Por exemplo, suponhamos que "categoria" tem três valores: "Ação > 2022", "Ação > 2021" e "Ciência ficção > 2022". Se definir "restrictedValues" como "Action > 2022", a faceta "category" só contém "Action > 2022". Só é suportado em campos de texto. O máximo é 10.

prefixes[]

string

Apenas recebe valores de facetas que começam com o prefixo de string fornecido. Por exemplo, suponhamos que "categoria" tem três valores: "Ação > 2022", "Ação > 2021" e "Ciência ficção > 2022". Se definir "prefixes" como "Action", o detalhe "category" contém apenas "Action > 2022" e "Action > 2021". Só é suportado em campos de texto. O máximo é 10.

contains[]

string

Obtenha apenas valores de facetas que contenham as strings indicadas. Por exemplo, suponhamos que "categoria" tem três valores: "Ação > 2022", "Ação > 2021" e "Ciência ficção > 2022". Se definir "contém" como "2022", a faceta "categoria" só contém "Ação > 2022" e "Ciência ficção > 2022". Só é suportado em campos de texto. O máximo é 10.

caseInsensitive

boolean

Verdadeiro para tornar as chaves de faceta insensíveis a maiúsculas e minúsculas quando obtém valores de facetas com prefixos ou contém; caso contrário, falso.

orderBy

string

A ordem pela qual os documentos são devolvidos.

Os valores permitidos são:

Se não estiver definido, os valores textuais são ordenados por ordem natural; os intervalos numéricos são ordenados pela ordem indicada por FacetSpec.FacetKey.intervals.