Auf dieser Seite werden die Filterung und Sortierung mit Retail Search beschrieben.
Anleitung zum Filtern
In dieser Anleitung finden Sie einige Beispiele für die Produktfilterung.
Eine detaillierte Anleitung zu dieser Aufgabe finden Sie direkt im Cloud Shell-Editor. Klicken Sie dazu einfach auf Anleitung:
Die folgenden Abschnitte führen Sie durch dieselben Schritte wie das Klicken auf Anleitung.
Anleitung zum Sortieren
In dieser Anleitung erfahren Sie, wie Sie Elemente in einer Suchantwort sortieren.
Eine detaillierte Anleitung zu dieser Aufgabe finden Sie direkt im Cloud Shell-Editor. Klicken Sie dazu einfach auf Anleitung:
Die folgenden Abschnitte führen Sie durch dieselben Schritte wie das Klicken auf Anleitung.
Beispieldatensatz
Auf dieser Seite wird das folgende Dataset als Beispiel verwendet. Nur die für das Beispiel erforderlichen Felder sind enthalten.
Filter
Java
Die Filterausdruckssyntax kann mit dem folgenden EBNF zusammengefasst werden:
# A single expression or multiple expressions that are joint by "AND" or "OR". filter = expression, { " AND " | "OR", expression }; # A expressions can be prefixed with "-" or "NOT" to express a negation. expression = [ "-" | "NOT " ], # A parenthesized expression | "(", expression, ")" # A simple expression applying to a textual field. # Function "ANY" returns true if the field contains any of the literals. ( textual_field, ":", "ANY", "(", literal, { ",", literal }, ")" # A simple expression applying to a numerical field. Function "IN" returns true # if a field value is within the range. By default, lower_bound is inclusive and # upper_bound is exclusive. | numerical_field, ":", "IN", "(", lower_bound, ",", upper_bound, ")" # A simple expression applying to a numerical field and compares with a double value. | numerical_field, comparison, double ); # A lower_bound is either a double, or "*" which represents negative infinity. # Specify inclusive bound with character 'i' for inclusive or exclusive bound # with character 'e', explicitly. lower_bound = ( double, [ "e" | "i" ] ) | "*"; # An upper_bound is either a double, or "*" which represents infinity. # Specify inclusive bound with character 'i' for inclusive or exclusive bound # with character 'e', explicitly. upper_bound = ( double, [ "e" | "i" ] ) | "*"; # Supported comparison operators. comparison = "<=" | "<" | ">=" | ">" | "="; # A literal is any double quoted string. You must escape backslash (\) and # quote (") characters. literal = double quoted string; textual_field = see the table below; numerical_field = see the table below;
Die unterstützten Textfelder werden in der folgenden Tabelle zusammengefasst.
Feld | Beschreibung |
---|---|
„productId“ | Die Produkt-ID (das letzte Segment von Product.name). |
"brands" | Die Product.brands. |
„categories“ | Die Product.categories. |
„genders“ | Die Audience.genders. |
„ageGroups“ | Die Audience.age_groups. |
"availability" | Die Product.availability. Der Wert ist einer der folgenden Werte: „IN_STORES“, „OUT_OF_STORES“, „PREORDER“, „BACKORDER“. |
"colorFamilies" | Die ColorInfo.color_families. |
„colors“ | Die ColorInfo.colors. |
„sizes“ | Die Product.sizes. |
„materials“ | Die Product.materials. |
„patterns“ | Die Product.patterns. |
„conditions“ | Die Product.conditions. |
"attributes.key" | Das benutzerdefinierte Textattribut im Produktobjekt. Ein Schlüssel kann ein beliebiger Schlüssel in der Zuordnung Product.attributes sein, wenn die Attributwerte in Textform vorliegen. |
„pickupInStore“ | Die FulfillmentInfo.place_ids für Typ "pickup-in-store". |
„shipToStore“ | Die FulfillmentInfo.place_ids für Typ "ship-to-store". |
„sameDayDelivery“ | Die FulfillmentInfo.place_ids für Typ "same-day-delivery". |
„nextDayDelivery“ | Die FulfillmentInfo.place_ids für Typ "next-day-delivery". |
„customFulfillment1“ | Die FulfillmentInfo.place_ids für Typ "custom-type-1". |
„customFulfillment2“ | Die FulfillmentInfo.place_ids für Typ "custom-type-2". |
„customFulfillment3“ | Die FulfillmentInfo.place_ids für Typ "custom-type-3". |
„customFulfillment4“ | Die FulfillmentInfo.place_ids für Typ "custom-type-4". |
„customFulfillment5“ | Die FulfillmentInfo.place_ids für Typ "custom-type-5". |
"inventory(place_id,attributes.key)" | Das benutzerdefinierte Textattribut im Inventar. |
Die unterstützten numerischen Felder sind in der folgenden Tabelle zusammengefasst.
Feld | Beschreibung |
---|---|
„price“ | Der PriceInfo.price. |
„discount“ | Der Rabatt. Berechnet von (original_price – Preis) / original_price. |
„rating“ | Die Rating.average_rating. |
„ratingCount“ | Die Rating.rating_count. |
"attributes.key" | Das numerische benutzerdefinierte Attribut im Produktobjekt. Ein Schlüssel kann ein beliebiger Schlüssel in der Zuordnung "Product.attributes" sein, wenn die Attributwerte numerisch sind. |
"inventory(place_id,price)" | Der Inventarpreis. |
"inventory(place_id,original_price)" | Der ursprüngliche Inventarpreis. |
"inventory(place_id,attributes.key)" | Das numerische benutzerdefinierte Attribut im Inventar. |
Es sind maximal 10 verschachtelte Verknüpfungen oder Verknüpfungen erforderlich.
Wenn Sie beispielsweise in den folgenden Situationen nach einem Google-Produkt suchen möchten, können Sie query
als "Google" festlegen und filter
als Werte in der folgenden Tabelle festlegen:
scenario | Filter |
---|---|
kein Pixel-Zubehör | "NOT categories: ANY(\"Pixel > featured accessories\")" |
"Preis unter 100 $" | "price: IN(*, 100.0e)" |
"Nest Lautsprecher mit Preis ab 80 $" | "(categories: ANY(\"Nest > speakers and displays\")) AND (price: IN(80.0i, *))" |
Reihenfolge
Java
Die unterstützten sortierbaren Felder sind in der folgenden Tabelle zusammengefasst.
Feld | Beschreibung |
---|---|
„productId“ | Die Produkt-ID (das letzte Segment von Product.name). |
„title“ | Der Product.title. |
"brands" | Die Product.brands. |
„categories“ | Die Product.categories. |
„genders“ | Die Audience.genders. |
„ageGroups“ | Die Audience.age_groups. |
„price“ | Der PriceInfo.price. |
„discount“ | Der Rabatt. Berechnet von (original_price - Preis) / Preis. |
„rating“ | Die Rating.average_rating. |
„ratingCount“ | Die Rating.rating_count. |
"attributes.key" | Das benutzerdefinierte Attribut im Produktobjekt. Ein Schlüssel kann ein beliebiger Schlüssel in der Zuordnung "Product.attributes" sein. |
"inventory(place_id,price)" | Der Inventarpreis. |
"inventory(place_id,original_price)" | Der ursprüngliche Inventarpreis. |
"inventory(place_id,attributes.key)" | Das numerische oder benutzerdefinierte Textattribut im Inventar. |
Die Reihenfolge ist standardmäßig aufsteigend. Die absteigende Reihenfolge kann durch das Suffix „desc“ angegeben werden, z. B. „rating desc“.
Die Sortierung nach mehreren Feldern wird durch den Einsatz von durch Kommas getrennten Feldern in der Reihenfolge der Priorität unterstützt. Die Felder mit niedrigerer Priorität werden zum Sortieren von Elementen mit gleichen Werten für Felder mit höherer Priorität verwendet. Mit "rating desc, price" werden beispielsweise Artikel mit derselben Bewertung nach Preis sortiert.