FacetSpec

Una especificación de faceta para realizar búsquedas por facetas.

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

object (FacetKey)

Obligatorio. La especificación de clave de faceta.

limit

integer

Valores máximos de faceta que se muestran para esta faceta. Si no se especifica, se establece de forma predeterminada como 20. El valor máximo permitido es 300. Los valores superiores a 300 se convierten a 300. Para la agregación en la búsqueda de atención médica, cuando [FacetKey.key] es "healthcare_aggregation_key", el límite se anulará internamente a 10,000, independientemente del valor establecido aquí.

Si este campo es negativo, se muestra un INVALID_ARGUMENT.

excludedFilterKeys[]

string

Lista de claves que se excluirán cuando se creen facetas.

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

Si se incluye una clave de faceta en este campo, sus valores pueden aparecer como resultados de faceta, incluso cuando se filtran de los resultados de la búsqueda. El uso de este campo no afecta los resultados de la búsqueda que se muestran.

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

Si "color" aparece en "excludedFilterKeys", la consulta muestra los valores de faceta "Rojo" con el recuento 100 y "Azul" con el recuento 200, porque la clave "color" ahora está excluida del filtro. Como este campo no afecta los resultados de la búsqueda, los resultados de la búsqueda se filtran correctamente para mostrar solo los documentos "Rojo".

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

enableDynamicPosition

boolean

Habilita la posición dinámica para esta faceta. Si se establece como verdadero, la posición de esta faceta entre todas las facetas de la respuesta se determina automáticamente. Si se habilitan las facetas dinámicas, se ordenan juntas. Si se establece como falso, la posición de esta faceta en la respuesta es la misma que en la solicitud, y se clasifica antes que las facetas con la posición dinámica habilitada y todas las facetas dinámicas.

Por ejemplo, es posible que siempre quieras que la faceta de calificación se muestre en la respuesta, pero no es necesario que siempre se muestre en la parte superior. En ese caso, puedes establecer enableDynamicPosition como verdadero para que la posición de la faceta de calificación en la respuesta se determine automáticamente.

Otro ejemplo: supongamos que tienes las siguientes facetas en la solicitud:

  • "rating", enableDynamicPosition = true

  • "price", enableDynamicPosition = false

  • "brands", enableDynamicPosition = false

También tienes habilitadas las facetas dinámicas, que generan una faceta gender. Luego, el orden final de las facetas en la respuesta puede ser ("price", "brands", "rating", "gender") o ("price", "brands", "gender", "rating"), según cómo la API ordene las facetas "gender" y "rating". Sin embargo, ten en cuenta que "price" y "brands" siempre se clasifican en la primera y segunda posición porque su enableDynamicPosition es falso.

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 faceta distingue mayúsculas de minúsculas.

intervals[]

object (Interval)

Se establece solo si los valores deben agruparse en intervalos. Se debe establecer para las facetas con valores numéricos. No se debe establecer para la faceta con valores de texto. La cantidad máxima de intervalos es 30.

restrictedValues[]

string

Solo obtén la faceta para los valores restringidos determinados. Solo se admite en campos textuales. Por ejemplo, supongamos que "category" tiene tres valores: "Action > 2022", "Action > 2021" y "Sci-Fi > 2022". Si se establece "restrictedValues" en "Action > 2022", la faceta "category" solo contiene "Action > 2022". Solo se admite en campos textuales. El máximo es 10.

prefixes[]

string

Solo obtén los valores de faceta que comiencen con el prefijo de cadena determinado. Por ejemplo, supongamos que "category" tiene tres valores: "Action > 2022", "Action > 2021" y "Sci-Fi > 2022". Si se establece "prefixes" en "Action", la faceta "category" solo contiene "Action > 2022" y "Action > 2021". Solo se admite en campos textuales. El máximo es 10.

contains[]

string

Solo obtén los valores de faceta que contengan las cadenas determinadas. Por ejemplo, supongamos que "category" tiene tres valores: "Action > 2022", "Action > 2021" y "Sci-Fi > 2022". Si se establece "contains" en "2022", la faceta "category" solo contiene "Action > 2022" y "Sci-Fi > 2022". Solo se admite en campos textuales. El máximo es 10.

caseInsensitive

boolean

Es verdadero para que las claves de faceta no distingan mayúsculas de minúsculas cuando se obtienen valores de facetas con prefijos o contiene; de lo contrario, es falso.

orderBy

string

El orden en que se muestran los documentos.

Los valores permitidos son los siguientes:

Si no se establece, los valores textuales se ordenan en orden natural; los intervalos numéricos se ordenan en el orden que indica FacetSpec.FacetKey.intervals.