FacetSpec

Especificación de una faceta para realizar una búsqueda por facetas.

Representación JSON
{
  "facetKey": {
    object (FacetKey)
  },
  "limit": integer,
  "excludedFilterKeys": [
    string
  ],
  "enableDynamicPosition": boolean
}
Campos
facetKey

object (FacetKey)

Obligatorio. Especificación de la clave de la faceta.

limit

integer

Número máximo de valores de faceta que se devuelven para esta faceta. Si no se especifica, el valor predeterminado es 20. El valor máximo permitido es 300. Los valores superiores a 300 se convierten en 300. En el caso de la agregación en la búsqueda de asistencia sanitaria, cuando [FacetKey.key] sea "healthcare_aggregation_key", el límite se sustituirá por 10.000 internamente, independientemente del valor definido aquí.

Si este campo es negativo, se devuelve un error INVALID_ARGUMENT.

excludedFilterKeys[]

string

Lista de claves que se excluirán al crear facetas.

De forma predeterminada, FacetKey.key no se excluye del filtro a menos que se incluya en este campo.

Si se incluye una clave de faceta en este campo, sus valores podrán aparecer como resultados de faceta aunque se hayan excluido de los resultados de búsqueda. El uso de este campo no afecta a los resultados de búsqueda que se devuelven.

Por ejemplo, supongamos que hay 100 documentos con la faceta de color "Rojo" y 200 documentos con la faceta de color "Azul". Una consulta que contenga el filtro "color:ANY("Rojo")" y que tenga "color" como FacetKey.key devolvería de forma predeterminada solo los documentos "Rojo" en los resultados de búsqueda, así como "Rojo" con el recuento 100 como la única faceta de color. Aunque también hay documentos azules, "Azul" no se mostraría como un valor de faceta disponible.

Si "color" aparece en "excludedFilterKeys", la consulta devuelve los valores de la faceta "Rojo" con el recuento 100 y "Azul" con el recuento 200, ya que la clave "color" ahora está excluida del filtro. Como este campo no afecta a los resultados de búsqueda, estos se siguen filtrando correctamente para devolver solo los documentos "Rojo".

Se permiten un máximo de 100 valores. De lo contrario, se devuelve un error INVALID_ARGUMENT.

enableDynamicPosition

boolean

Habilita la posición dinámica de esta faceta. Si se define como true, la posición de esta faceta entre todas las facetas de la respuesta se determina automáticamente. Si las facetas dinámicas están habilitadas, se ordenan juntas. Si se asigna el valor "false", la posición de esta faceta en la respuesta es la misma que en la solicitud y se clasifica antes de las facetas con la posición dinámica habilitada y de todas las facetas dinámicas.

Por ejemplo, puede que siempre quiera que se devuelva la faceta de valoración en la respuesta, pero no es necesario que siempre se muestre en la parte superior. En ese caso, puedes asignar el valor true a enableDynamicPosition para que la posición de la faceta de valoración en la respuesta se determine automáticamente.

Otro ejemplo, suponiendo que tiene las siguientes facetas en la solicitud:

  • "rating", enableDynamicPosition = true

  • "price", enableDynamicPosition = false

  • "brands", enableDynamicPosition = false

También tiene habilitadas las facetas dinámicas, que generan una faceta gender. El orden final de las facetas en la respuesta puede ser ("price", "brands", "rating", "gender") o ("price", "brands", "gender", "rating"), en función de cómo ordene la API las facetas "gender" y "rating". Sin embargo, observa que "price" y "brands" siempre se clasifican en primer y segundo lugar porque su valor de enableDynamicPosition es false.

FacetKey

Especifica cómo se calcula una faceta.

Representación JSON
{
  "key": string,
  "intervals": [
    {
      object (Interval)
    }
  ],
  "restrictedValues": [
    string
  ],
  "prefixes": [
    string
  ],
  "contains": [
    string
  ],
  "caseInsensitive": boolean,
  "orderBy": string
}
Campos
key

string

Obligatorio. Claves de faceta textuales y numéricas admitidas en el objeto Document, sobre las que se calculan los valores de faceta. La clave de la faceta distingue entre mayúsculas y minúsculas.

intervals[]

object (Interval)

Solo se debe definir si los valores se deben agrupar en intervalos. Se debe definir para las facetas con valores numéricos. No se debe definir para las facetas con valores de texto. El número máximo de intervalos es 30.

restrictedValues[]

string

Solo se obtiene la faceta de los valores restringidos proporcionados. Solo se admite en campos de texto. Por ejemplo, supongamos que "category" tiene tres valores: "Action > 2022", "Action > 2021" y "Sci-Fi > 2022". Si asigna el valor "Action> 2022 " a "restrictedValues", la faceta "category" solo contendrá "Action > 2022". Solo se admite en campos de texto. El máximo es 10.

prefixes[]

string

Solo se obtienen los valores de faceta que empiezan por el prefijo de cadena proporcionado. Por ejemplo, supongamos que "category" tiene tres valores: "Action > 2022", "Action > 2021" y "Sci-Fi > 2022". Si se asigna el valor "Action" a "prefixes", la faceta "category" solo contendrá "Action > 2022" y "Action > 2021". Solo se admite en campos de texto. El máximo es 10.

contains[]

string

Solo se obtienen los valores de faceta que contienen las cadenas proporcionadas. Por ejemplo, supongamos que "category" tiene tres valores: "Action > 2022", "Action > 2021" y "Sci-Fi > 2022". Si se asigna el valor "2022" a "contains", la faceta "category" solo contendrá "Action > 2022" y "Sci-Fi > 2022". Solo se admite en campos de texto. El máximo es 10.

caseInsensitive

boolean

True para que las claves de las facetas no distingan entre mayúsculas y minúsculas al obtener valores de facetas con prefijos o que contengan un texto; false en caso contrario.

orderBy

string

El orden en el que se devuelven los documentos.

Los valores permitidos son:

Si no se define, los valores de texto se ordenan de forma natural y los intervalos numéricos se ordenan según el orden que se indica en FacetSpec.FacetKey.intervals.