FacetSpec

Una specifica di facet per eseguire la ricerca con facet.

Rappresentazione JSON
{
  "facetKey": {
    object (FacetKey)
  },
  "limit": integer,
  "excludedFilterKeys": [
    string
  ],
  "enableDynamicPosition": boolean
}
Campi
facetKey

object (FacetKey)

Obbligatorio. La specifica della chiave di facet.

limit

integer

Valori di facet massimi restituiti per questo facet. Se non specificato, il valore predefinito è 20. Il valore massimo consentito è 300. I valori superiori a 300 vengono forzati a 300. Per l'aggregazione nella ricerca nel settore sanitario, quando [FacetKey.key] è "healthcare_aggregation_key", il limite verrà sostituito internamente con 10.000, indipendentemente dal valore impostato qui.

Se questo campo è negativo, viene restituito un INVALID_ARGUMENT.

excludedFilterKeys[]

string

Elenco di chiavi da escludere durante la creazione di facet.

Per impostazione predefinita, FacetKey.key non viene esclusa dal filtro a meno che non sia elencata in questo campo.

L'elenco di una chiave di facet in questo campo consente ai relativi valori di essere visualizzati come risultati di facet, anche se sono stati esclusi dai risultati di ricerca. L'utilizzo di questo campo non influisce sui risultati di ricerca restituiti.

Ad esempio, supponiamo che ci siano 100 documenti con il facet di colore "Rosso" e 200 documenti con il facet di colore "Blu". Per impostazione predefinita, una query contenente il filtro "color:ANY("Red")" e con "color" come FacetKey.key restituirebbe solo i documenti "Rosso" nei risultati di ricerca e anche "Rosso" con conteggio 100 come unico facet di colore. Sebbene siano disponibili anche documenti blu, "Blu" non verrà visualizzato come valore di facet disponibile.

Se "color" è elencato in "excludedFilterKeys", la query restituisce i valori di facet "Rosso" con conteggio 100 e "Blu" con conteggio 200, perché la chiave "color" è ora esclusa dal filtro. Poiché questo campo non influisce sui risultati di ricerca, i risultati di ricerca vengono comunque filtrati correttamente per restituire solo i documenti "Rosso".

Sono consentiti massimo 100 valori. In caso contrario, viene restituito un errore INVALID_ARGUMENT.

enableDynamicPosition

boolean

Abilita la posizione dinamica per questo facet. Se impostato su true, la posizione di questo facet tra tutti i facet nella risposta viene determinata automaticamente. Se i facet dinamici sono abilitati, vengono ordinati insieme. Se impostato su false, la posizione di questo facet nella risposta è la stessa della richiesta e viene classificata prima dei facet con la posizione dinamica abilitata e di tutti i facet dinamici.

Ad esempio, potresti voler sempre che il facet di valutazione venga restituito nella risposta, ma non è necessario che venga sempre visualizzato in alto. In questo caso, puoi impostare enableDynamicPosition su true in modo che la posizione del facet di valutazione nella risposta venga determinata automaticamente.

Un altro esempio, supponendo di avere i seguenti facet nella richiesta:

  • "rating", enableDynamicPosition = true

  • "price", enableDynamicPosition = false

  • "brands", enableDynamicPosition = false

Inoltre, hai abilitato i facet dinamici, che generano un facet gender. L'ordine finale dei facet nella risposta può essere ("price", "brands", "rating", "gender") o ("price", "brands", "gender", "rating") a seconda di come l'API ordina i facet "gender" e "rating". Tuttavia, tieni presente che "price" e "brands" sono sempre classificati in prima e seconda posizione perché il loro enableDynamicPosition è false.

FacetKey

Specifica come viene calcolato un facet.

Rappresentazione JSON
{
  "key": string,
  "intervals": [
    {
      object (Interval)
    }
  ],
  "restrictedValues": [
    string
  ],
  "prefixes": [
    string
  ],
  "contains": [
    string
  ],
  "caseInsensitive": boolean,
  "orderBy": string
}
Campi
key

string

Obbligatorio. Chiavi di facet testuali e numeriche supportate nell'oggetto Document, su cui vengono calcolati i valori di facet. La chiave di facet fa distinzione tra maiuscole e minuscole.

intervals[]

object (Interval)

Imposta solo se i valori devono essere suddivisi in intervalli. Deve essere impostato per i facet con valori numerici. Non deve essere impostato per il facet con valori di testo. Il numero massimo di intervalli è 30.

restrictedValues[]

string

Ottieni solo il facet per i valori limitati specificati. Supportato solo nei campi di testo. Ad esempio, supponiamo che "category" abbia tre valori: "Action > 2022", "Action > 2021" e "Sci-Fi > 2022". Se imposti "restrictedValues" su "Action > 2022", il facet "category" contiene solo "Action > 2022". Supportato solo nei campi di testo. Il valore massimo è 10.

prefixes[]

string

Ottieni solo i valori di facet che iniziano con il prefisso della stringa specificato. Ad esempio, supponiamo che "category" abbia tre valori: "Action > 2022", "Action > 2021" e "Sci-Fi > 2022". Se imposti "prefixes" su "Action", il facet "category" contiene solo "Action > 2022" e "Action > 2021". Supportato solo nei campi di testo. Il valore massimo è 10.

contains[]

string

Ottieni solo i valori di facet che contengono le stringhe specificate. Ad esempio, supponiamo che "category" abbia tre valori: "Action > 2022", "Action > 2021" e "Sci-Fi > 2022". Se imposti "contains" su "2022", il facet "category" contiene solo "Action > 2022" e "Sci-Fi > 2022". Supportato solo nei campi di testo. Il valore massimo è 10.

caseInsensitive

boolean

True per rendere le chiavi di facet senza distinzione tra maiuscole e minuscole quando si ottengono i valori di facet con prefissi o contiene; in caso contrario, false.

orderBy

string

L'ordine in cui vengono restituiti i documenti.

I valori consentiti sono:

Se non impostati, i valori di testo vengono ordinati in ordine naturale; gli intervalli numerici vengono ordinati nell'ordine specificato da FacetSpec.FacetKey.intervals.