FacetSpec

Eine Facettenspezifikation für die Attributsuche.

JSON-Darstellung
{
  "facetKey": {
    object (FacetKey)
  },
  "limit": integer,
  "excludedFilterKeys": [
    string
  ],
  "enableDynamicPosition": boolean
}
Felder
facetKey

object (FacetKey)

Erforderlich. Die Facettenschlüsselspezifikation.

limit

integer

Maximale Anzahl von Attributwerten, die für dieses Attribut zurückgegeben werden. Wenn nichts anderes angegeben wird, wird der Wert standardmäßig auf 20 gesetzt. Der maximal zulässige Wert beträgt 300. Werte über 300 werden implizit auf 300 umgewandelt. Bei der Aggregation in der Suche nach Gesundheitsdaten wird das Limit intern auf 10.000 überschrieben, wenn [FacetKey.key] „healthcare_aggregation_key“ ist. Das gilt unabhängig vom hier festgelegten Wert.

Wenn dieses Feld negativ ist, wird ein INVALID_ARGUMENT zurückgegeben.

excludedFilterKeys[]

string

Liste der Schlüssel, die beim Facettieren ausgeschlossen werden sollen.

Standardmäßig wird FacetKey.key nicht aus dem Filter ausgeschlossen, sofern es nicht in diesem Feld aufgeführt ist.

Wenn Sie einen Attributschlüssel in diesem Feld angeben, können seine Werte als Attributergebnisse angezeigt werden, auch wenn sie aus den Suchergebnissen herausgefiltert werden. Die Verwendung dieses Felds hat keinen Einfluss darauf, welche Suchergebnisse zurückgegeben werden.

Angenommen, es gibt 100 Dokumente mit der Farb-Facette „Rot“ und 200 Dokumente mit der Farb-Facette „Blau“. Bei einer Abfrage mit dem Filter „color:ANY(“Red”)“ und „color“ als FacetKey.key werden in den Suchergebnissen standardmäßig nur Dokumente mit der Farbe „Rot“ zurückgegeben. Außerdem wird „Rot“ mit der Anzahl 100 als einzige Farb-Facette zurückgegeben. Obwohl auch blaue Dokumente verfügbar sind, wird „Blau“ nicht als verfügbarer Facettenwert angezeigt.

Wenn „color“ in „excludedFilterKeys“ aufgeführt ist, gibt die Abfrage die Facettenwerte „Red“ mit dem Zähler 100 und „Blue“ mit dem Zähler 200 zurück, da der Schlüssel „color“ jetzt aus dem Filter ausgeschlossen ist. Da sich dieses Feld nicht auf die Suchergebnisse auswirkt, werden die Suchergebnisse weiterhin korrekt gefiltert, sodass nur Dokumente mit dem Wert „Rot“ zurückgegeben werden.

Es sind maximal 100 Werte zulässig. Andernfalls wird der Fehler INVALID_ARGUMENT zurückgegeben.

enableDynamicPosition

boolean

Aktiviert die dynamische Position für diese Facette. Wenn diese Option auf „true“ gesetzt ist, wird die Position dieser Facette unter allen Facetten in der Antwort automatisch bestimmt. Wenn dynamische Facetten aktiviert sind, wird die Bestellung zusammen ausgeführt. Wenn der Wert auf „false“ gesetzt ist, ist die Position dieser Facette in der Antwort dieselbe wie in der Anfrage. Es wird vor den Facetten mit aktivierter dynamischer Position und allen dynamischen Facetten eingestuft.

Sie möchten beispielsweise immer, dass die Facette „Bewertung“ in der Antwort zurückgegeben wird, aber nicht unbedingt immer oben angezeigt wird. In diesem Fall können Sie „enableDynamicPosition“ auf „true“ setzen, damit die Position der Bewertungsfacette in der Antwort automatisch bestimmt wird.

Ein weiteres Beispiel: Angenommen, Sie haben die folgenden Facetten in der Anfrage:

  • „rating“, enableDynamicPosition = true

  • „price“, enableDynamicPosition = false

  • „brands“, enableDynamicPosition = false

Außerdem haben Sie dynamische Facetten aktiviert, wodurch die Facette gender generiert wird. Die endgültige Reihenfolge der Facetten in der Antwort kann dann („price“, „brands“, „rating“, „gender“) oder („price“, „brands“, „gender“, „rating“) sein, je nachdem, wie die API die Facetten „gender“ und „rating“ sortiert. „price“ und „brands“ werden jedoch immer an erster und zweiter Stelle platziert, da für sie „enableDynamicPosition“ auf „false“ gesetzt ist.

FacetKey

Gibt an, wie eine Facette berechnet wird.

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

string

Erforderlich. Unterstützte Text- und numerische Attributschlüssel im Document-Objekt, für die die Attributwerte berechnet werden. Bei Facettenschlüsseln wird zwischen Groß- und Kleinschreibung unterschieden.

intervals[]

object (Interval)

Nur festlegen, wenn Werte in Intervalle unterteilt werden sollen. Muss für Facetten mit numerischen Werten festgelegt werden. Darf nicht für Facetten mit Textwerten festgelegt werden. Die maximale Anzahl von Intervallen beträgt 30.

restrictedValues[]

string

Nur Facette für die angegebenen eingeschränkten Werte abrufen. Wird nur für Textfelder unterstützt. Angenommen, „category“ hat die drei Werte „Action > 2022“, „Action > 2021“ und „Sci-Fi > 2022“. Wenn Sie „restrictedValues“ auf „Action > 2022“ festlegen, enthält die Facette „category“ nur „Action > 2022“. Wird nur für Textfelder unterstützt. Der Höchstwert ist 10.

prefixes[]

string

Nur Facettenwerte abrufen, die mit dem angegebenen Stringpräfix beginnen. Angenommen, „category“ hat die drei Werte „Action > 2022“, „Action > 2021“ und „Sci-Fi > 2022“. Wenn Sie „prefixes“ auf „Action“ festlegen, enthält die Dimension „category“ nur „Action > 2022“ und „Action > 2021“. Wird nur für Textfelder unterstützt. Der Höchstwert ist 10.

contains[]

string

Nur Facettenwerte abrufen, die die angegebenen Strings enthalten. Angenommen, „category“ hat die drei Werte „Action > 2022“, „Action > 2021“ und „Sci-Fi > 2022“. Wenn Sie „contains“ auf „2022“ festlegen, enthält die Facette „category“ nur „Action > 2022“ und „Sci-Fi > 2022“. Wird nur für Textfelder unterstützt. Der Höchstwert ist 10.

caseInsensitive

boolean

„True“, damit bei der Suche nach Facettierungswerten mit Präfixen oder „contains“ die Groß-/Kleinschreibung für Facettenschlüssel nicht berücksichtigt wird. Andernfalls „false“.

orderBy

string

Die Reihenfolge, in der Dokumente zurückgegeben werden.

Zulässige Werte sind:

Wenn nicht festgelegt, werden Textwerte in natürlicher Reihenfolge sortiert. Numerische Intervalle werden in der durch FacetSpec.FacetKey.intervals angegebenen Reihenfolge sortiert.