FacetSpec

Spécification d'attribut permettant d'effectuer une recherche par attribut.

Représentation JSON
{
  "facetKey": {
    object (FacetKey)
  },
  "limit": integer,
  "excludedFilterKeys": [
    string
  ],
  "enableDynamicPosition": boolean
}
Champs
facetKey

object (FacetKey)

Obligatoire. Spécification de la clé de facette.

limit

integer

Nombre maximal de valeurs d'attributs renvoyées pour cet attribut. Si aucune valeur n'est spécifiée, la valeur par défaut est 20. La valeur maximale autorisée est de 300. Les valeurs supérieures à 300 sont réduites à 300. Pour l'agrégation dans la recherche médicale, lorsque [FacetKey.key] est défini sur "healthcare_aggregation_key", la limite est remplacée par 10 000 en interne, quelle que soit la valeur définie ici.

Si ce champ est négatif, une erreur INVALID_ARGUMENT est renvoyée.

excludedFilterKeys[]

string

Liste des clés à exclure lors de la création de facettes.

Par défaut, FacetKey.key n'est pas exclu du filtre, sauf s'il est indiqué dans ce champ.

Si vous indiquez une clé d'attribut dans ce champ, ses valeurs peuvent apparaître en tant que résultats d'attributs, même si elles sont filtrées dans les résultats de recherche. L'utilisation de ce champ n'a aucune incidence sur les résultats de recherche renvoyés.

Par exemple, supposons qu'il existe 100 documents avec l'attribut de couleur "Rouge" et 200 documents avec l'attribut de couleur "Bleu". Une requête contenant le filtre "color:ANY("Red")" et ayant "color" comme FacetKey.key renverrait par défaut uniquement les documents "Rouge" dans les résultats de recherche, ainsi que "Rouge" avec le nombre 100 comme seul attribut de couleur. Bien que des documents bleus soient également disponibles, "Bleu" ne s'affiche pas comme valeur de facette disponible.

Si "color" figure dans "excludedFilterKeys", la requête renvoie les valeurs d'attribut "Red" avec le nombre 100 et "Blue" avec le nombre 200, car la clé "color" est désormais exclue du filtre. Comme ce champ n'affecte pas les résultats de recherche, ils sont toujours correctement filtrés pour ne renvoyer que les documents "Rouge".

Vous ne pouvez pas saisir plus de 100 valeurs. Dans le cas contraire, une erreur INVALID_ARGUMENT est renvoyée.

enableDynamicPosition

boolean

Active la position dynamique pour cet attribut. Si la valeur est "true", la position de cette facette parmi toutes les facettes de la réponse est déterminée automatiquement. Si les facettes dynamiques sont activées, elles sont regroupées. Si la valeur est définie sur "false", la position de cet attribut dans la réponse est la même que dans la requête. Il est classé avant les attributs dont la position dynamique est activée et tous les attributs dynamiques.

Par exemple, vous pouvez toujours vouloir que le facette de note soit renvoyée dans la réponse, mais il n'est pas nécessaire de toujours l'afficher en haut. Dans ce cas, vous pouvez définir enableDynamicPosition sur "true" pour que la position du facette de note dans la réponse soit déterminée automatiquement.

Autre exemple, en supposant que vous ayez les facettes suivantes dans la requête :

  • "rating", enableDynamicPosition = true

  • "price", enableDynamicPosition = false

  • "brands", enableDynamicPosition = false

Vous avez également activé les facettes dynamiques, ce qui génère une facette gender. L'ordre final des facettes dans la réponse peut être ("price", "brands", "rating", "gender") ou ("price", "brands", "gender", "rating"), selon la façon dont l'API ordonne les facettes "gender" et "rating". Toutefois, notez que "price" et "brands" sont toujours classés en première et deuxième positions, car leur propriété enableDynamicPosition est définie sur "false".

FacetKey

Spécifie comment un facette est calculée.

Représentation JSON
{
  "key": string,
  "intervals": [
    {
      object (Interval)
    }
  ],
  "restrictedValues": [
    string
  ],
  "prefixes": [
    string
  ],
  "contains": [
    string
  ],
  "caseInsensitive": boolean,
  "orderBy": string
}
Champs
key

string

Obligatoire. Clés de facette textuelles et numériques acceptées dans l'objet Document, sur lesquelles les valeurs de facette sont calculées. La clé de facette est sensible à la casse.

intervals[]

object (Interval)

Ne définissez cette option que si les valeurs doivent être réparties dans des intervalles. Doit être défini pour les facettes avec des valeurs numériques. Ne doit pas être défini pour une facette avec des valeurs de texte. Le nombre maximal d'intervalles est de 30.

restrictedValues[]

string

N'obtient la facette que pour les valeurs restreintes spécifiées. (uniquement compatible avec les champs textuels) Par exemple, supposons que "category" comporte trois valeurs : "Action > 2022", "Action > 2021" et "Sci-Fi > 2022". Si vous définissez "restrictedValues" sur "Action > 2022", la facette "category" ne contient que "Action > 2022". (uniquement compatible avec les champs textuels) Le maximum est de 10.

prefixes[]

string

N'obtient que les valeurs de facette qui commencent par le préfixe de chaîne donné. Par exemple, supposons que "category" comporte trois valeurs : "Action > 2022", "Action > 2021" et "Sci-Fi > 2022". Si vous définissez "prefixes" sur "Action", la facette "category" ne contient que "Action > 2022" et "Action > 2021". (uniquement compatible avec les champs textuels) Le maximum est de 10.

contains[]

string

N'obtient que les valeurs de facette contenant les chaînes données. Par exemple, supposons que "category" comporte trois valeurs : "Action > 2022", "Action > 2021" et "Sci-Fi > 2022". Si vous définissez "contient" sur "2022", la facette "category" ne contient que "Action > 2022" et "Sci-Fi > 2022". (uniquement compatible avec les champs textuels) Le maximum est de 10.

caseInsensitive

boolean

"True" pour rendre les clés de facette insensibles à la casse lors de l'obtention des valeurs de facette avec des préfixes ou des valeurs "contains", "false" dans le cas contraire.

orderBy

string

Ordre dans lequel les documents sont renvoyés.

Les valeurs autorisées sont les suivantes :

Si ce champ n'est pas défini, les valeurs textuelles sont triées dans l'ordre naturel, et les intervalles numériques sont triés dans l'ordre indiqué par FacetSpec.FacetKey.intervals.