

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Empfehlungen und Benutzersegmente filtern
<a name="filter"></a>

Wenn Sie Empfehlungen mit einer Domain-Empfehlung oder einer benutzerdefinierten Kampagne erhalten, können Sie die Ergebnisse nach benutzerdefinierten Kriterien filtern. Beispielsweise möchten Sie möglicherweise keine Produkte empfehlen, die ein Benutzer bereits gekauft hat, oder nur Artikel für eine bestimmte Altersgruppe empfehlen. 

In ähnlicher Weise möchten Sie bei USER\$1SEGMENTATION-Rezepten möglicherweise bestimmte Benutzertypen nicht in Benutzersegmente aufnehmen. Indem Sie Ihre Ergebnisse filtern, können Sie steuern, welche Elemente Benutzern empfohlen werden oder welche Benutzer in Benutzersegmente aufgenommen werden. 

Sie können Filter mithilfe der Amazon Personalize Personalize-Konsole, den AWS Command Line Interface (AWS CLI) und dem erstellen, bearbeiten, löschen und anwenden. AWS SDKs
+ Für Empfehlungen in Echtzeit wenden Sie einen Filter an und geben alle Filterparameterwerte an, wenn Sie die GetPersonalizedRanking Operationen GetRecommendations GetActionRecommendations, oder aufrufen. Sie können auch einen Filter anwenden, wenn Sie Empfehlungen von einer Kampagne oder einem Empfehlungsgeber in der Konsole erhalten. 

   Wenn Sie in Echtzeit Artikelempfehlungen mit personalisierten oder ähnlichen Artikeln, Rezepten oder Anwendungsfällen erhalten, können Sie in Ihrer Anfrage eine Werbeaktion angeben. Bei einer *Werbeaktion* werden mithilfe eines Filters zusätzliche Geschäftsregeln definiert, die für eine konfigurierbare Teilmenge empfohlener Artikel gelten. Weitere Informationen finden Sie unter [Werbung für Artikel in Echtzeitempfehlungen](promoting-items.md). 
+ Bei Batch-Workflows fügen Sie alle Filterparameterwerte in Ihre JSON-Eingabe ein. Anschließend geben Sie den Amazon-Ressourcennamen (ARN) des Filters an, wenn Sie einen Batch-Inferenz-Job oder einen Batch-Segment-Job erstellen. Weitere Informationen finden Sie unter [Filtern von Batch-Empfehlungen und Benutzersegmenten (benutzerdefinierte Ressourcen)](filter-batch.md).

**Filtern Sie Aktualisierungen nach neuen Datensätzen**

 Für Daten, die Sie mit den PutActionInteractions Operationen PutEvents oder importieren, aktualisiert Amazon Personalize alle Filter in der Datensatzgruppe innerhalb von Sekunden nach dem Import mit den neuen Daten. Wenn Ihr Filter beispielsweise gekaufte Artikel aus Empfehlungen entfernt und Sie mit diesem PutEvents Vorgang ein Kaufereignis für einen Benutzer aufzeichnen, wird dieser Artikel innerhalb von Sekunden nach der Aufzeichnung des Ereignisses aus future Empfehlungen für diesen Benutzer entfernt. 

 Für alle anderen Daten, die in großen Mengen oder einzeln importiert werden, aktualisiert Amazon Personalize alle Filter in der Datensatzgruppe innerhalb von 20 Minuten nach dem letzten Import mit den neuen Daten. 

**Topics**
+ [Filterausdrücke](filter-expressions.md)
+ [Empfehlungen in Echtzeit filtern](filter-real-time.md)
+ [Filtern von Batch-Empfehlungen und Benutzersegmenten (benutzerdefinierte Ressourcen)](filter-batch.md)

# Filterausdrücke
<a name="filter-expressions"></a>

Um Filter zu konfigurieren, müssen Sie einen ordnungsgemäß formatierten *Filterausdruck* verwenden. Filterausdrücke bestehen aus Datensatz- und Feldbezeichnern in. `dataset` `field`Format zusammen mit logischen Operatoren, Schlüsselwörtern und Werten. Für Werte können Sie feste Werte angeben oder Platzhalterparameter hinzufügen und die Filterkriterien festlegen, wenn Sie Empfehlungen erhalten.

Sie können Filterausdrücke verwenden, um Elemente, Benutzer oder Aktionen anhand von Empfehlungen zu filtern, die auf Daten aus den folgenden Datensätzen basieren:
+  **Artikelinteraktionen**: Sie können Filterausdrücke verwenden, um Elemente oder Benutzer auf der Grundlage von Interaktionsdaten ein- oder auszuschließen. Sie können beispielsweise Artikel ausschließen, auf die ein Benutzer bereits geklickt hat (für Artikelempfehlungen), oder nur Benutzer einbeziehen, die Artikel bewertet haben (für das Artikelaffinitätsrezept). Für alle Rezeptarten können Sie nur nach Ereignistyp filtern. Sie können nicht auf der Grundlage anderer Interaktionsmetadaten filtern, wie z. B. kontextuellen Metadaten. Sie können keine Filter für Artikelinteraktionen mit dem verwenden. [Item-Attribute-Affinity rezept](item-attribute-affinity-recipe.md) 

  Amazon Personalize berücksichtigt bis zu 100 der neuesten Interaktionen pro Benutzer und Ereignistyp. Dies ist ein anpassbares Kontingent. Sie können über die [Service Quotas-Konsole eine Erhöhung des Kontingents](https://console.aws.amazon.com/servicequotas/) beantragen. Wenn Sie drei Monate lang keine Artikelinteraktionen für einen Benutzer importieren, berücksichtigen Ihre Filter die historischen Daten des Benutzers nicht mehr. Um diese Daten zu berücksichtigen, müssen Sie den gesamten Ereignisverlauf des Benutzers erneut importieren. 
+  **Interaktionen mit Aktionen**: Verwenden Sie Filterausdrücke, um Aktionen, mit denen ein Benutzer interagiert hat, je nach Ereignistyp ein- oder auszuschließen. Sie können beispielsweise Aktionen ausschließen, die ein Benutzer bereits ausgeführt hat. Sie können nicht auf der Grundlage anderer Aktionsinteraktionsmetadaten filtern. 

  Amazon Personalize berücksichtigt bis zu 300 der letzten Aktionsinteraktionen pro Benutzer und Ereignistyp. Dies ist ein anpassbares Kontingent. Sie können über die [Service Quotas-Konsole eine Erhöhung des Kontingents](https://console.aws.amazon.com/servicequotas/) beantragen. 
+  **Artikel**: Verwenden Sie Filterausdrücke, um Artikel auf der Grundlage bestimmter Artikelbedingungen ein- oder auszuschließen. Sie können Filter nicht verwenden, um Artikel auf der Grundlage unstrukturierter textueller Artikelmetadaten wie Produktbeschreibungen ein- oder auszuschließen. Wenn Ihr Domain-Anwendungsfall oder Ihre benutzerdefinierte Rezeptur Empfehlungen für ähnliche Artikel generiert, wie z. B. das Rezept „Ähnliche Artikel“ oder das „*Mehr wie X*“ -Domain, können Sie Filterausdrücke verwenden, um Artikel auf der Grundlage der Eigenschaften des Artikels, den Sie in Ihrer Empfehlungsanfrage angeben, ein- oder auszuschließen. 
+  **Benutzer**: Wenn Sie über einen Benutzerdatensatz verfügen, können Sie für *Artikel* - und *Aktionsempfehlungen* Elemente oder Aktionen ausschließen oder einbeziehen, die auf einem basieren. `CurrentUser` Für personalisierte Empfehlungen, beliebte Artikel und Handlungsempfehlungen ist dies der Benutzer, für den Sie Empfehlungen erhalten. Für verwandte Artikel ist dies ein optionaler Benutzer, den Sie in Ihrer Empfehlungsanfrage angeben können. 

  Für *Benutzersegmente* können Sie Filterausdrücke verwenden, um Benutzer anhand von Attributen ein- oder auszuschließen, z. `Users.MEMBERSHIP_STATUS` B. 
+  **Aktionen**: Verwenden Sie Filterausdrücke, um Aktionen auf der Grundlage bestimmter Aktionsbedingungen ein- oder auszuschließen. Amazon Personalize schließt automatisch Aktionen aus, die auf `Action expiration timestamp` Daten basieren. `Repeat frequency` Sie können keine zusätzlichen benutzerdefinierten Filter erstellen, die auf diesen Daten basieren. 

Eine vollständige Liste der Filterausdruckselemente finden Sie unter[Ausdruckselemente filtern](creating-filter-expressions.md#filter-expression-elements). Beispiele für Filterausdrücke finden Sie unter[Beispiele für Filterausdrücke](filter-expression-examples.md). 

**Topics**
+ [Richtlinien und Anforderungen](filter-expression-guidelines-requirements.md)
+ [Ausdrucksstruktur und Elemente filtern](creating-filter-expressions.md)
+ [Beispiele für Filterausdrücke](filter-expression-examples.md)

# Richtlinien und Anforderungen
<a name="filter-expression-guidelines-requirements"></a>

 Beachten Sie beim Erstellen eines Filterausdrucks die folgenden Richtlinien und Anforderungen: 
+ Sie können Filter nicht verwenden, um Artikel ein- oder auszuschließen, die auf unstrukturierten Metadaten von Textelementen wie Produktbeschreibungen basieren.
+ Wenn Sie anhand von Daten zu Artikel- oder Aktionsinteraktionen filtern, können Sie nur nach Ereignistyp filtern. Sie können nicht auf der Grundlage anderer Interaktionsmetadaten filtern, wie z. B. kontextuellen Metadaten.
+ Amazon Personalize ignoriert nur Groß- und Kleinschreibung, wenn Ereignistypen übereinstimmen.
+ Sie können Artikelinteraktion und Artikeldatensätze nicht in einem Ausdruck verwenden. Um einen Filter zu erstellen, der nach Interaktion und dann nach Artikeldatensätzen (oder umgekehrt) filtert, müssen Sie zwei oder mehr Ausdrücke miteinander verketten. Weitere Informationen finden Sie unter [Kombinieren mehrerer Ausdrücke](multiple-expression-example.md). 
+ Sie können die Datensätze „Artikelinteraktion“ und „Aktion“ nicht in einem Ausdruck verwenden. Um einen Filter zu erstellen, der nach Artikelinteraktion und dann nach Action-Datensätzen (oder umgekehrt) filtert, müssen Sie zwei oder mehr Ausdrücke miteinander verketten. Weitere Informationen finden Sie unter [Kombinieren mehrerer Ausdrücke](multiple-expression-example.md). 
+ Sie können keine Filter für Artikelinteraktionen mit dem [Item-Attribute-Affinity rezept](item-attribute-affinity-recipe.md) verwenden. 
+  Sie können in Ihrem Schema keine Filterausdrücke erstellen, die mithilfe von Werten mit einem booleschen Typ filtern. Um auf der Grundlage boolescher Werte zu filtern, verwenden Sie ein Schema mit einem Feld vom Typ *String* und verwenden Sie die Werte `"True"` und `"False"` in Ihren Daten. Oder Sie können den Typ *int* oder *long* und die Werte `0` und verwenden. `1` 
+  Die maximale Anzahl von unterschiedlichen Datensatzfeldern für einen Filter, entweder in einem Ausdruck oder in mehreren miteinander verketteten Ausdrücken, beträgt **10.** Die maximale Anzahl von unterschiedlichen Datensatzfeldern für alle Filter in einer Datensatzgruppe beträgt **20.** 
+  Sie können einen Filter nur dann auf das CurrentItem Element anwenden, wenn Ihr Domain-Anwendungsfall oder Ihre benutzerdefinierte Rezeptur Empfehlungen für ähnliche Artikel generiert, z. B. das Rezept „Ähnliche Artikel“ oder das „*More Like X*“ -Domain-Anwendungsbeispiel. 
+ Sie können keine Platzhalterparameter in einem Filterausdruck verwenden, der den NOT\$1IN-Operator verwendet. Verwenden Sie stattdessen den IN-Operator und die entgegengesetzte Aktion. Verwenden Sie beispielsweise Include statt Exclude (oder umgekehrt).
+ Sie können keine Filter erstellen, die auf `Action expiration timestamp` `Repeat frequency` Daten basieren. Amazon Personalize filtert automatisch Handlungsempfehlungen auf der Grundlage dieser Daten.

# Ausdrucksstruktur und Elemente filtern
<a name="creating-filter-expressions"></a>

Dieser Abschnitt enthält Informationen zur Struktur von Filterausdrücken und ihren Elementen.

**Topics**
+ [Struktur der Filterausdrücke](#filter-expression-structure)
+ [Ausdruckselemente filtern](#filter-expression-elements)

## Struktur der Filterausdrücke
<a name="filter-expression-structure"></a>

Die allgemeine Struktur eines Filterausdrucks lautet wie folgt: 

```
EXCLUDE/INCLUDE ItemID/ActionID/UserID WHERE dataset type.field IN/NOT IN (value/parameter)
```

Sie können Filterausdrücke entweder manuell erstellen oder Hilfe zur Syntax und Struktur von Ausdrücken erhalten, indem Sie den [Ausdrucks-Generator](filter-real-time.md#using-filter-expression-builder) in der Konsole verwenden. 

## Ausdruckselemente filtern
<a name="filter-expression-elements"></a>

Verwenden Sie die folgenden Elemente, um Filterausdrücke zu erstellen:

**INCLUDE oder EXCLUDE**  
Verwenden Sie diese Option`INCLUDE`, um Empfehlungen auf Artikel zu beschränken, die die Filterkriterien erfüllen, *ODER* verwenden Sie diese Option, `EXCLUDE` um alle Artikel zu entfernen, die die Filterkriterien erfüllen.

**ItemID/ActionID/UserID**  
Verwenden Sie eines dieser Elemente nach dem `INCLUDE` `EXCLUDE` Oder-Element. Welches Element Sie verwenden, hängt davon ab, ob Sie Elemente (für Artikelempfehlungen), Aktionen (für Handlungsempfehlungen) oder Benutzer (für Benutzersegmente) filtern. 

**WHERE**  
Wird verwendet`WHERE`, um die Bedingungen für Elemente, Aktionen oder Benutzer zu überprüfen. Sie müssen das `WHERE` Element nach dem `ItemID``ActionID`, oder verwenden`UserID`. 

**UND/ODER**  
Um mehrere Bedingungen innerhalb desselben Filterausdrucks miteinander zu verketten, verwenden Sie `AND` oder`OR`. Bedingungen, die mithilfe von `AND` oder miteinander verkettet wurden, `OR` können sich nur auf Felder des Datensatzes auswirken, der in der ersten Bedingung verwendet wurde.

**Dataset.Field**  
Geben Sie den Datensatz und das Metadatenfeld an, nach denen Sie Empfehlungen filtern möchten. `dataset` `field`Format. Um beispielsweise Artikelempfehlungen basierend auf dem Feld „Genres“ in Ihrem Artikeldatensatz zu filtern, würden Sie Items.Genres in Ihrem Filterausdruck verwenden. 

**IF-Bedingung**  
Verwenden Sie eine `IF` Bedingung *nur*, um Bedingungen für `CurrentUser` und nur *einmal* am Ende eines Ausdrucks zu überprüfen. Sie können eine `IF` Bedingung jedoch mithilfe von erweitern`AND`. 

**CurrentUser.attribut**  
 *Um Artikelempfehlungen auf der Grundlage des Benutzers zu filtern, für den Sie Empfehlungen erhalten, verwenden Sie das Benutzerfeld `CurrentUser` und geben Sie es an.* Beispiel, `CurrentUser.AGE`. 

**CurrentItem.attribut**  
 Verwenden Sie nur für verwandte Artikel, Rezepte und Anwendungsfälle. `CurrentItem` `attribute`um Artikel anhand eines Attributs des Artikels zu filtern, den Sie in Ihrer Anfrage nach Empfehlungen für ähnliche Artikel angegeben haben. Zum Beispiel `CurrentItem.GENRE` oder `CurrentItem.PRICE`.   
 Sie können nur dann einen Filter auf das CurrentItem Element anwenden, wenn Ihr Domain-Anwendungsfall oder Ihre benutzerdefinierte Rezeptur Empfehlungen für ähnliche Artikel generiert, z. B. das Rezept „Ähnliche Artikel“ oder das „*More Like X*“ -Domain-Anwendungsbeispiel. Wenn Sie zum ersten Mal einen Filter mit einem `CurrentItem` Element erstellen, kann die Erstellung des Filters einige Minuten dauern. Bei der Verschlüsselung kann AWS KMS die Filtererstellung bis zu 15 Minuten dauern. 

**IN/NICHT IN**  
Verwenden Sie `IN` oder `NOT IN` als Vergleichsoperatoren, um nach übereinstimmenden (oder nicht übereinstimmenden) Zeichenkettenwerten zu filtern. Amazon Personalize filtert nur nach exakten Zeichenketten.

**Vergleichsoperatoren**  
Verwenden Sie =, <, <=, >, >= und\$1 = Operatoren, um numerische Daten, einschließlich Daten, die in einem Platzhalterparameter übergeben wurden, auf Gleichheit zu testen.

**Sternchen (\$1)**  
Wird verwendet`*`, um Interaktionen aller Art ein- oder auszuschließen. `*`*Nur* für Filterausdrücke verwenden, die das `EVENT_TYPE` Feld eines `Interactions` Datensatzes verwenden.

**Rohrtrenner**  
Verwenden Sie den Rohrtrenner (`|`), um mehrere Ausdrücke miteinander zu verketten. Weitere Informationen finden Sie unter [Kombinieren mehrerer Ausdrücke](multiple-expression-example.md).

**Parameters**  
Verwenden Sie bei Ausdrücken, die Vergleichsoperatoren oder den `IN` Operator verwenden, das Dollarzeichen (\$1) und einen Parameternamen, um einen Platzhalterparameter als Wert hinzuzufügen. Beispiel, `$GENRES`. Wenn Sie in diesem Beispiel Empfehlungen erhalten, geben Sie das Genre oder die Genres an, nach denen gefiltert werden soll.  
Sie definieren einen Parameternamen, wenn Sie ihn einem Ausdruck hinzufügen. Der Parametername muss nicht mit dem Feldnamen übereinstimmen. Es wird empfohlen, einen Parameternamen zu verwenden, der dem Feldnamen ähnelt und leicht zu merken ist. Sie verwenden den Parameternamen (Groß- und Kleinschreibung beachten), wenn Sie den Filter auf Empfehlungsanfragen anwenden. Ein Beispiel, das zeigt, wie Sie einen Filter mit Platzhalterparametern anwenden, wenn Sie die AWS SDKS verwenden, finden Sie unter. [Anwenden eines Filters (AWS SDKs)](filter-real-time.md#applying-filter-sdk)

# Beispiele für Filterausdrücke
<a name="filter-expression-examples"></a>

 Verwenden Sie die Filterausdrücke in den folgenden Abschnitten, um zu erfahren, wie Sie Ihre eigenen Filterausdrücke erstellen können. 

**Topics**
+ [Beispiele für Filterausdrücke für Artikelempfehlungen](item-recommendation-filter-examples.md)
+ [Filterausdrücke für Benutzersegmente](user-segment-filter-examples.md)
+ [Beispiele für Filterausdrücke für Aktionsempfehlungen](action-recommendation-filter-examples.md)
+ [Kombinieren mehrerer Ausdrücke](multiple-expression-example.md)

# Beispiele für Filterausdrücke für Artikelempfehlungen
<a name="item-recommendation-filter-examples"></a>

Die folgenden Filterausdrücke zeigen, wie Artikelempfehlungen auf der Grundlage von Artikelinteraktionen, Elementmetadaten und Benutzermetadaten gefiltert werden. Sie sind nach Datentyp geordnet.

**Topics**
+ [Daten zur Interaktion mit Artikeln](#item-interaction-filter-examples)
+ [Artikeldaten](#item-filter-examples)
+ [Benutzerdaten](#user-filter-examples)

## Daten zur Interaktion mit Artikeln
<a name="item-interaction-filter-examples"></a>

Der folgende Ausdruck schließt Elemente aus, die auf einem Ereignistyp (z. B. Klick) oder auf Ereignistypen basieren, die Sie angeben, wenn Sie mithilfe des `$EVENT_TYPE` Parameters Empfehlungen erhalten.

```
EXCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ($EVENT_TYPE)
```

 Der folgende Ausdruck schließt Elemente aus, auf die ein Benutzer geklickt oder gestreamt hat.

```
EXCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ("click", "stream")
```

Der folgende Ausdruck schließt nur Elemente ein, auf die der Benutzer geklickt hat.

```
INCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ("click")
```

## Artikeldaten
<a name="item-filter-examples"></a>

Der folgende Ausdruck schließt Artikel aus, die auf einer oder mehreren Kategorien basieren, die Sie angeben, wenn Sie mithilfe des `$CATEGORY` Parameters Empfehlungen erhalten.

```
EXCLUDE ItemID WHERE Items.CATEGORY IN ($CATEGORY)
```

Der folgende Ausdruck umfasst nur Artikel, die günstiger sind als der aktuelle Artikel (der Artikel, den Sie in der Anfrage nach Empfehlungen für ähnliche Artikel angeben) und von demselben Studio wie der aktuelle Artikel erstellt wurden. Sie können nur dann einen Filter auf das CurrentItem Element anwenden, wenn Ihr Domain-Anwendungsfall oder Ihre benutzerdefinierte Rezeptur Empfehlungen für ähnliche Artikel generiert.

```
INCLUDE ItemID WHERE Items.PRICE < CurrentItem.PRICE AND Items.GENRE IN CurrentItem.GENRE
```

 Der folgende Ausdruck schließt Elemente aus, die auf mehreren Ebenen von kategorialen Feldern basieren. Er schließt Elemente mit einem CATEGORY\$1L1-Wert von aus, die *keinen `shoe` CATEGORY\$1L2-Wert von haben*. `boot` 

```
EXCLUDE ItemID WHERE Items.CATEGORY_L1 IN ("shoe") AND Items.CATEGORY_L2 NOT IN ("boot")
```

Der folgende Ausdruck schließt nur Artikel ein, deren Preis unter dem Preis liegt oder diesem entspricht, den Sie angeben, wenn Sie mithilfe des Parameters Empfehlungen erhalten. `$PRICE`

```
INCLUDE ItemID WHERE Items.PRICE <= $PRICE
```

Der folgende Ausdruck umfasst nur Elemente, die vor einem Zeitstempel (in der Unix-Zeit) erstellt wurden, den Sie angeben, wenn Sie Empfehlungen erhalten.

```
INCLUDE ItemID WHERE Items.CREATION_TIMESTAMP < $DATE
```

Der folgende Ausdruck umfasst nur Elemente mit einem oder mehreren Genres, die Sie angeben, wenn Sie mithilfe des `$GENRE` Parameters Empfehlungen erhalten.

```
INCLUDE ItemID WHERE Items.GENRE IN ($GENRE)
```

Der folgende Ausdruck umfasst nur Elemente, die teurer sind als das aktuelle Objekt *und* vor einer kürzeren Zeit erstellt wurden als ein von Ihnen angegebener Zeitstempel (in Unix-Epochenzeit). Sie können diesen Filter verwenden, wenn Sie Empfehlungen für ähnliche Artikel erhalten und bestimmte Geschäftsregeln anwenden möchten, die auf dem Preis und einem unterschiedlichen Erstellungsdatum basieren.

```
INCLUDE ItemID WHERE Items.PRICE < CurrentItem.PRICE AND Items.CREATION_TIMESTAMP > $DATE
```

## Benutzerdaten
<a name="user-filter-examples"></a>

Der folgende Ausdruck schließt Artikel mit einem oder mehreren Genres aus, die Sie angeben, wenn Sie mithilfe des `$GENRE` Parameters Empfehlungen erhalten, aber nur, wenn das Alter des aktuellen Benutzers dem Wert entspricht, den Sie angeben, wenn Sie Empfehlungen mithilfe des `$AGE` Parameters erhalten. 

```
EXCLUDE ItemID WHERE Items.GENRE IN ($GENRE) IF CurrentUser.AGE = $AGE
```

Der folgende Ausdruck schließt nur Elemente mit `watch` für CATEGORY\$1L1 und `luxury` für CATEGORY\$1L2 ein, wenn das Alter des aktuellen Benutzers überschritten ist. `18`

```
INCLUDE ItemID WHERE Items.CATEGORY_L1 IN ("watch") AND Items.CATEGORY_L2 IN ("luxury") IF CurrentUser.AGE > 18
```

# Filterausdrücke für Benutzersegmente
<a name="user-segment-filter-examples"></a>

Die folgenden Filterausdrücke zeigen, wie Benutzersegmente auf der Grundlage von Artikelinteraktionsdaten und Benutzermetadaten gefiltert werden. Sie sind nach Datentyp organisiert.

 **Benutzerdaten** 

Der folgende Filterausdruck umfasst nur Benutzer mit einem Mitgliedschaftsstatus, der dem Wert entspricht, den Sie beim Abrufen von Benutzersegmenten angeben.

```
INCLUDE UserID WHERE Users.MEMBERSHIP_STATUS IN ($MEMBERSHIP)
```

Der folgende Filterausdruck schließt Benutzer aus, deren Wert `AGE` unter dem Wert liegt, den Sie beim Abrufen von Benutzersegmenten angeben.

```
EXCLUDE UserID WHERE Users.AGE < $AGE
```

 **Daten zur Artikelinteraktion** 

Der folgende Filterausdruck umfasst nur Benutzer, die auf Elemente geklickt oder diese bewertet haben.

```
INCLUDE UserID WHERE Interactions.EVENT_TYPE IN ("click", "rating")
```

Der folgende Filterausdruck schließt Benutzer aus Benutzersegmenten aus, die Artikelinteraktionen mit einem Ereignistyp haben, den Sie beim Abrufen von Benutzersegmenten angeben.

```
EXCLUDE UserID WHERE Interactions.EVENT_TYPE IN ($EVENT_TYPE)
```

# Beispiele für Filterausdrücke für Aktionsempfehlungen
<a name="action-recommendation-filter-examples"></a>

Die folgenden Beispiele für Filterausdrücke zeigen, wie Aktionen auf der Grundlage von Aktionsinteraktionsdaten, Aktionsdaten und Benutzerdaten gefiltert werden. Sie sind nach Datentyp geordnet.

**Topics**
+ [Daten zur Interaktion zwischen Aktionen](#action-interaction-filter-examples)
+ [Aktionsdaten](#action-filter-examples)
+ [Benutzerdaten](#user-action-filter-examples)

## Daten zur Interaktion zwischen Aktionen
<a name="action-interaction-filter-examples"></a>

Der folgende Filterausdruck umfasst nur Aktionen in Empfehlungen, mit denen der Benutzer interagiert hat, wenn diese Interaktionen einen Ereignistyp haben, den Sie angeben, wenn Sie Empfehlungen erhalten. 

```
INCLUDE ActionID WHERE Action_Interactions.EVENT_TYPE IN ($EVENT_TYPE)
```

Der folgende Filterausdruck schließt Aktionen aus, die der Benutzer nicht ausgeführt hat, je nach Ereignistyp.

```
EXCLUDE ActionID WHERE Action_Interactions.EVENT_TYPE IN ("NOT_TAKEN")
```

## Aktionsdaten
<a name="action-filter-examples"></a>

Der folgende Ausdruck schließt Aktionen aus, die auf einer oder mehreren Kategorien basieren, die Sie angeben, wenn Sie mithilfe des `$CATEGORY` Parameters Empfehlungen erhalten.

```
EXCLUDE ActionID WHERE Actions.CATEGORY IN ($CATEGORY)
```

Der folgende Ausdruck schließt nur Aktionen ein, deren Wert größer ist als der Wert, den Sie angeben, wenn Sie Empfehlungen erhalten.

```
INCLUDE ActionID WHERE Actions.VALUE > ($VALUE)
```

## Benutzerdaten
<a name="user-action-filter-examples"></a>

Der folgende Ausdruck umfasst nur Aktionen für Premium-Mitglieder, wenn der aktuelle Benutzer eine Premium-Mitgliedschaft hat. 

```
INCLUDE ActionID WHERE Action.MEMBERSHIP_LEVEL IN ("Premium") IF CurrentUser.MEMBERSHIP = $PREMIUM
```

Der folgende Ausdruck schließt Aktionen mit einem Wert `VALUE` unter einem Wert aus, den Sie angeben, wenn Sie Empfehlungen erhalten, wenn der aktuelle Benutzer ein Premium-Mitglied ist.

```
EXCLUDE ActionID WHERE Actions.VALUE < ($VALUE) IF CurrentUser.MEMBERSHIP = $PREMIUM
```

# Kombinieren mehrerer Ausdrücke
<a name="multiple-expression-example"></a>

Um mehrere Ausdrücke miteinander zu kombinieren, verwenden Sie einen Rohrtrenner (`|`). Verwenden Sie eine Kombination von Ausdrücken, wenn Sie einen einzigen Filter verwenden und nach Datensätzen für Artikel und Artikelinteraktionen oder nach Datensätzen mit Aktionen und Aktionen filtern möchten. Jeder Ausdruck wird zunächst unabhängig ausgewertet, und das Ergebnis ist entweder die Vereinigung oder der Schnittpunkt der beiden Ergebnisse. Die folgenden Beispiele zeigen, wie Ausdrücke für Datensätze mit Elementen und Interaktionen mit Elementen erstellt werden. Für die Arbeit mit Aktionen und Aktionsinteraktionen gelten jedoch dieselben Regeln. 

**Beispiel für passende Ausdrücke**

 Wenn beide Ausdrücke verwenden `EXCLUDE` oder beide Ausdrücke verwenden`INCLUDE`, ist das Ergebnis die Vereinigung der beiden Ergebnisse wie folgt (A und B sind unterschiedliche Ausdrücke): 
+ `Exclude A | Exclude B`ist gleich `Exclude result from A or result from B`
+ `Include A | Include B`ist gleich `Include result from A or result from B`

Das folgende Beispiel zeigt, wie zwei Ausdrücke kombiniert werden, die verwenden`INCLUDE`. Der erste Ausdruck umfasst nur Elemente mit einer oder mehreren Kategorien, die Sie angeben, wenn Sie mithilfe des `$CATEGORY` Parameters Empfehlungen erhalten. Der zweite Ausdruck umfasst Elemente, die der Benutzer als markiert hat`favorite`. Empfehlungen enthalten nur Artikel mit der von Ihnen angegebenen Kategorie sowie Elemente, die der Benutzer als Favorit markiert hat.

```
INCLUDE ItemID WHERE Items.CATEGORY IN ($CATEGORY) | INCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ("favorite")
```

**Beispiel für INCLUDE und EXCLUDE**

 Wenn ein oder mehrere Ausdrücke verwendet `INCLUDE` und ein weiterer Ausdruck verwendet`EXCLUDE`, ist das Ergebnis die Subtraktion des `EXCLUDE` Ausdrucksergebnisses vom `INCLUDE` Ausdrucksergebnis wie folgt (A, B, C und D sind unterschiedliche Ausdrücke).
+ `Include A | Exclude B`ist gleich `Include result from A - result from B`
+  `Include A | Include B | Exclude C | Exclude D`ist gleich `Include (A or B) - (C or D)` 

Die Reihenfolge der Ausdrücke spielt keine Rolle: Wenn der EXCLUDE-Ausdruck vor dem INCLUDE-Ausdruck steht, ist das Ergebnis dasselbe.

Das folgende Beispiel zeigt, wie ein `INCLUDE` Ausdruck und ein `EXCLUDE` Ausdruck kombiniert werden. Der erste Ausdruck umfasst nur Elemente mit einem oder mehreren Genres, die Sie angeben, wenn Sie mithilfe des `$GENRE` Parameters Empfehlungen erhalten. Der zweite Ausdruck schließt Elemente aus, auf die der Benutzer geklickt oder gestreamt hat. Empfehlungen enthalten nur Artikel mit einem von Ihnen angegebenen Genre, die nicht angeklickt oder gestreamt wurden.

```
INCLUDE ItemID WHERE Items.GENRE IN ($GENRE) | EXCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ("click", "stream")
```

# Empfehlungen in Echtzeit filtern
<a name="filter-real-time"></a>

Sie können Empfehlungen in Echtzeit mit der Amazon Personalize Personalize-Konsole, AWS Command Line Interface (AWS CLI) oder dem AWS SDKs filtern.

 Wenn Sie personalisierte Artikelempfehlungen oder ähnliche Artikel erhalten, können Sie in Ihrer Anfrage eine Werbeaktion angeben. Eine *Werbeaktion* verwendet einen Filter, um zusätzliche Geschäftsregeln zu definieren, die für eine konfigurierbare Teilmenge empfohlener Artikel gelten. Weitere Informationen finden Sie unter [Werbung für Artikel in Echtzeitempfehlungen](promoting-items.md). 

**Topics**
+ [Filtern von Empfehlungen in Echtzeit (Konsole)](#filter-rt-console)
+ [Empfehlungen in Echtzeit filtern (AWS CLI)](#filter-rt-cli)
+ [Empfehlungen in Echtzeit filtern (AWS SDKs)](#filter-rt-sdk)

## Filtern von Empfehlungen in Echtzeit (Konsole)
<a name="filter-rt-console"></a>

Um Empfehlungen in Echtzeit mithilfe der Konsole zu filtern, erstellen Sie einen Filter und wenden Sie ihn dann auf eine Empfehlungsanfrage an. 

**Anmerkung**  
Um Empfehlungen mithilfe eines Filters mit Parametern und einer Kampagne zu filtern, die vor dem 10. November 2020 bereitgestellt wurde, müssen Sie die Kampagne mithilfe des [UpdateCampaign](API_UpdateCampaign.md) Vorgangs erneut bereitstellen oder eine neue Kampagne erstellen.

### Einen Filter erstellen (Konsole)
<a name="creating-filter-console"></a>

 Um einen Filter in der Konsole zu erstellen, wählen Sie die Datensatzgruppe aus, die die Kampagne oder den Empfehlungsgeber enthält, den Sie verwenden möchten, um gefilterte Empfehlungen zu erhalten. Geben Sie dann einen Filternamen und einen Filterausdruck ein.

**Um einen Filter zu erstellen (Konsole)**

1. Öffnen Sie zu [https://console.aws.amazon.com/personalize/Hause](https://console.aws.amazon.com/personalize/home) die Amazon Personalize Personalize-Konsole und melden Sie sich bei Ihrem Konto an. 

1. Wählen Sie die Datensatzgruppe aus, die die Kampagne oder den Empfehlungsgeber enthält, den Sie verwenden möchten, um gefilterte Empfehlungen zu erhalten.

1. Wählen Sie im Navigationsbereich **Filter** und dann **Neuen Filter erstellen** aus. Die Seite **Filter erstellen** wird angezeigt.  
![\[Zeigt die Seite „Filter erstellen“ mit den Feldern für den Filternamen und den Ausdruck.\]](http://docs.aws.amazon.com/de_de/personalize/latest/dg/images/create-filter-page.png)

1. Geben Sie **unter Filtername** einen Namen für Ihren Filter ein. Sie wählen den Filter anhand dieses Namens aus, wenn Sie ihn auf eine Empfehlungsanfrage anwenden.

1. Wählen Sie für **Ausdruck** entweder **Ausdruck erstellen oder Ausdruck** **manuell hinzufügen** aus und erstellen Sie Ihren Ausdruck oder fügen Sie ihn ein:
   + Um den Ausdrucks-Generator zu verwenden, wählen Sie **Ausdruck erstellen** aus. Der Ausdrucks-Generator bietet Struktur, Felder und Richtlinien für die Erstellung korrekt formatierter Filterausdrücke. Weitere Informationen finden Sie unter [Verwenden des Generators für Filterausdrücke](#using-filter-expression-builder).
   +  Um Ihren eigenen Ausdruck einzugeben, wählen Sie **Ausdruck manuell hinzufügen**. Weitere Informationen finden Sie unter [Ausdruckselemente filtern](creating-filter-expressions.md#filter-expression-elements). 

1. Wählen Sie **Finish** (Abschließen). Auf der Übersichtsseite des Filters werden der Amazon-Ressourcenname (ARN), der Status und der vollständige Filterausdruck des Filters angezeigt. Um den Filter zu löschen, wählen Sie **Löschen**. Informationen zum Suchen und Löschen von Filtern, nachdem Sie die Übersichtsseite verlassen haben, finden Sie unter[Löschen eines Filters (Konsole)](#delete-filter-console).  
![\[Stellt die Filterdetailseite mit dem ARN und dem Ausdruck des Filters dar.\]](http://docs.aws.amazon.com/de_de/personalize/latest/dg/images/filter-details-page.png)

### Einen Filter anwenden (Konsole)
<a name="apply-filter-console"></a>

 Um einen Filter anzuwenden, wählen Sie **unter Testempfehlung** (für Empfehlungen) oder **Ergebnisse von Testkampagnen** (für benutzerdefinierte Kampagnen) den Filter aus und geben Sie beliebige Filterparameterwerte ein. Holen Sie sich dann Empfehlungen für einen Benutzer. 

**Wichtig**  
Für Filterausdrücke, die ein `INCLUDE` Element verwenden, müssen Sie Werte für alle Parameter angeben, die im Ausdruck definiert sind. Bei Filtern mit Ausdrücken, die ein `EXCLUDE` Element verwenden, können Sie das `filter-values` weglassen. In diesem Fall verwendet Amazon Personalize diesen Teil des Ausdrucks nicht zum Filtern von Empfehlungen.

**Um einen Filter anzuwenden (Konsole)**

1. Öffnen Sie zu [https://console.aws.amazon.com/personalize/Hause](https://console.aws.amazon.com/personalize/home) die Amazon Personalize Personalize-Konsole und melden Sie sich bei Ihrem Konto an. 

1. Wählen Sie die Datensatzgruppe aus, die die Kampagne oder den Empfehlungsgeber enthält, den Sie verwenden möchten, um gefilterte Empfehlungen zu erhalten.

1. Führen Sie je nach Dataset-Gruppentyp oder Ressourcentyp einen der folgenden Schritte aus:

   1. Wählen Sie für eine Domain-Datensatzgruppe im Navigationsbereich **Empfehlungen aus.**

   1. Wählen Sie für eine benutzerdefinierte Datensatzgruppe oder benutzerdefinierte Ressourcen im Navigationsbereich **Benutzerdefinierte Ressourcen** und dann **Kampagnen** aus.

1. Wählen Sie auf der Seite **„Empfehlungen**“ oder „**Kampagnen**“ die Zielempfehlung oder Kampagne aus.

1. Rufen Sie zum Vergleich zunächst Empfehlungen ab, ohne einen Filter anzuwenden. Geben Sie unter **Testempfehlung/Ergebnisse der** **Testkampagne** die ID eines Benutzers ein, für den Sie Empfehlungen erhalten möchten, oder die ID des Artikels für verwandte Artikel und wählen Sie **Empfehlungen abrufen** aus. Eine Tabelle mit den wichtigsten Empfehlungen wird angezeigt.  
![\[Zeigt die Empfehlungsergebnisse ohne Anwendung eines Filters an.\]](http://docs.aws.amazon.com/de_de/personalize/latest/dg/images/Recommendations_no-filter.PNG)

1. Wählen Sie im Menü **Filtername** den Filter aus, den Sie erstellt haben. Wenn Ihr Filter Platzhalterparameter enthält, werden die zugehörigen Felder für jeden Parameter angezeigt.

1. Wenn Sie einen Filter mit Platzhalterparametern verwenden, geben Sie für jeden Parameter den Wert ein, um die Filterkriterien festzulegen. Um mehrere Werte für einen Parameter zu verwenden, trennen Sie jeden Wert durch ein Komma.

1. Verwenden Sie denselben `User ID` oder `Item ID` wie im vorherigen Schritt und wählen Sie **Empfehlungen abrufen** aus. Die Tabelle mit Empfehlungen wird angezeigt.  
![\[Zeigt Empfehlungsergebnisse mit angewendetem Filter an.\]](http://docs.aws.amazon.com/de_de/personalize/latest/dg/images/Recommendations_filter.png)

   Wenn der Benutzer beispielsweise bereits einen empfohlenen Artikel gekauft hat, entfernt der Filter ihn aus der Empfehlungsliste. In diesem Beispiel wurden die Artikel 2657, 2985 durch die am besten geeigneten Artikel ersetzt, die der Benutzer nicht gekauft hat (Artikel 2641 und 1573).

### Verwenden des Generators für Filterausdrücke
<a name="using-filter-expression-builder"></a>

Der **Ausdrucks-Generator** auf der Seite **Filter erstellen** bietet Struktur, Felder und Richtlinien für die Erstellung korrekt formatierter Filter.

![\[Stellt die Felder des Ausdrucks-Generators auf der Seite „Filter erstellen“ dar.\]](http://docs.aws.amazon.com/de_de/personalize/latest/dg/images/expression-builder-empty.png)


Um einen Filterausdruck zu erstellen:
+ Verwenden Sie die Felder **Typ**, **Aktion**, **Eigenschaft**, **Operator** und **Wert**, um einen Ausdruck zu erstellen. 

  Geben Sie für den **Wert** einen festen Wert ein, oder geben Sie *\$1* \$1 als Parameternamen ein, um Filterkriterien festzulegen, wenn Sie Empfehlungen erhalten. Beispiel, `$GENRES`. Wenn Sie Empfehlungen erhalten, geben Sie den Wert oder die Werte an, nach denen gefiltert werden soll. In diesem Beispiel würden Sie ein Genre oder eine Liste von Genres angeben, wenn Sie Empfehlungen erhalten.

  Trennen Sie mehrere Werte, die keine Parameter sind, durch ein Komma. Sie können einem Filter keine durch Kommas getrennten Parameter hinzufügen.
**Anmerkung**  
Nachdem Sie eine **Eigenschaft** (im `dataset.field` Format) ausgewählt haben, muss der **Eigenschaftswert** für alle nachfolgenden Zeilen, die durch `AND` oder `OR` Bedingungen verkettet sind, denselben Wert verwenden. `dataset`
+  Verwenden Sie die Schaltflächen **\$1** und **X**, um Ihrem Ausdruck eine Zeile hinzuzufügen oder daraus zu löschen. Sie können die erste Zeile nicht löschen. 
+  Verwenden Sie für neue Zeilen die `OR` Operatoren `AND``IF`, oder im **AND-Menü**, um eine Kette von Bedingungen zu erstellen. 

  Für `IF` Bedingungen:
  + Jeder Ausdruck kann nur ein `IF` Element enthalten. Wenn Sie eine IF-Bedingung entfernen, entfernt der Ausdrucks-Generator alle darauf folgenden `AND` Bedingungen.
  + Sie können `IF` Bedingungen nur für Ausdrücke verwenden, die nach dem filtern`CurrentUser`.
+  Wählen Sie die Schaltfläche **Ausdruck hinzufügen**, um einen zusätzlichen Filterausdruck für eine genauere Filterung hinzuzufügen. Jeder Ausdruck wird zunächst unabhängig ausgewertet, und das Ergebnis ist eine Vereinigung der beiden Ergebnisse. 
**Anmerkung**  
Um einen Filter zu erstellen, der sowohl Objekt- als auch Artikelinteraktionsdatensätze oder Aktionsinteraktionsdatensätze verwendet, *müssen Sie mehrere Ausdrücke* verwenden.

#### Beispiel für einen Ausdrucksersteller
<a name="expression-builder-example"></a>

Das folgende Beispiel zeigt, wie Sie einen Filter erstellen, der Elemente mit einem Genre ausschließt, das Sie angeben, wenn Sie Empfehlungen erhalten (beachten Sie den Platzhalterparameter \$1GENRES). Der Filter schließt auch Elemente mit einem Wert `DOWNLOAD_COUNT` von mehr als aus`200`, jedoch nur, wenn das Alter des aktuellen Benutzers höher als ist. `17`

![\[Zeigt, wie der Ausdrucks-Generator verwendet wird, um einen Beispielfilterausdruck zu erstellen.\]](http://docs.aws.amazon.com/de_de/personalize/latest/dg/images/create-filter-expression-builder.png)


### Löschen eines Filters (Konsole)
<a name="delete-filter-console"></a>

Durch das Löschen eines Filters wird der Filter aus der Filterliste für eine Datensatzgruppe entfernt.

**Wichtig**  
Sie können einen Filter nicht löschen, während ein Batch-Inferenzjob ausgeführt wird.

**Um einen Filter zu löschen (Konsole)**

1. Öffnen Sie zu [https://console.aws.amazon.com/personalize/Hause](https://console.aws.amazon.com/personalize/home) die Amazon Personalize Personalize-Konsole und melden Sie sich bei Ihrem Konto an. 

1. Wählen Sie aus der Liste der **Datensatzgruppen** die Datensatzgruppe aus, die den Filter enthält, den Sie löschen möchten. 

1. Wählen Sie im Navigationsbereich **Filter** aus.

1. Wählen Sie aus der Filterliste den Filter aus, den Sie löschen möchten, und wählen Sie **Details anzeigen** aus. Die Seite mit den Filterdetails wird angezeigt.

1. Wählen Sie **Löschen** und bestätigen Sie den Löschvorgang im Bestätigungsdialogfeld. 

## Empfehlungen in Echtzeit filtern (AWS CLI)
<a name="filter-rt-cli"></a>

Um Empfehlungen mit dem zu filtern AWS CLI, erstellen Sie einen Filter und wenden ihn dann an, indem Sie den Filter-ARN in einer [GetRecommendations](API_RS_GetRecommendations.md) [GetPersonalizedRanking](API_RS_GetPersonalizedRanking.md) OR-Anfrage angeben.

**Wichtig**  
Um Empfehlungen mithilfe eines Filters mit Parametern und einer Kampagne zu filtern, die Sie vor dem 10. November 2020 bereitgestellt haben, müssen Sie die Kampagne mithilfe des [UpdateCampaign](API_UpdateCampaign.md) Anrufs erneut bereitstellen oder eine neue Kampagne erstellen.

### Einen Filter erstellen ()AWS CLI
<a name="creating-filter-cli"></a>

Verwenden Sie den folgenden `create-filter` Vorgang, um einen Filter zu erstellen und den Filterausdruck anzugeben. 

Ersetzen Sie das `Filter name` durch den Namen des Filters und das `Dataset group ARN` durch den Amazon-Ressourcennamen (ARN) der Datensatzgruppe. Ersetzen Sie das Beispiel `filter-expression` durch Ihren eigenen Filterausdruck. 

```
aws personalize create-filter \
  --name Filter name \
  --dataset-group-arn dataset group arn \
  --filter-expression "EXCLUDE ItemID WHERE Items.CATEGORY IN (\"$CATEGORY\")"
```

 Bei Erfolg wird der Filter-ARN angezeigt. Nehmen Sie es für die spätere Verwendung auf. Um zu überprüfen, ob der Filter aktiv ist, führen Sie den [DescribeFilter](API_DescribeFilter.md) Vorgang aus, bevor Sie den Filter verwenden. 

 Weitere Informationen zur API finden Sie unter [CreateFilter](API_CreateFilter.md). Weitere Informationen zu Filterausdrücken, einschließlich Beispielen, finden Sie unter[Ausdrucksstruktur und Elemente filtern](creating-filter-expressions.md). 

### Anwenden eines Filters (AWS CLI)
<a name="applying-filter-cli"></a>

Wenn Sie die `get-personalized-ranking` Operationen `get-action-recommendations` oder verwenden`get-recommendations`, wenden Sie einen Filter an, indem Sie die `filter-arn` und alle Filterwerte als Parameter übergeben. 

Im Folgenden finden Sie ein Beispiel für die `get-recommendations` Operation. `Campaign ARN`Ersetzen Sie es durch den Amazon-Ressourcennamen (ARN) Ihrer Kampagne `User ID` durch die ID des Benutzers, für den Sie Empfehlungen erhalten, und `Filter ARN` durch den ARN Ihres Filters. Wenn Sie Empfehlungen von einem Empfehlungsgeber statt von einer Kampagne erhalten, verwenden Sie `recommender-arn` stattdessen den ARN für den Empfehlungsgeber `--campaign-arn` und geben Sie ihn an.

Wenn Ihr Ausdruck Parameter hat, schließen Sie das `filter-values` Objekt ein. Geben Sie für jeden Parameter in Ihrem Filterausdruck den Parameternamen (Groß- und Kleinschreibung beachten) und die Werte an. Wenn Ihr Filterausdruck beispielsweise einen `$GENRE` Parameter hat, geben Sie *„GENRE“* als Schlüssel und ein oder mehrere Genres, z. B.`"Comedy"`, als Wert an. Trennen Sie mehrere Werte durch ein Komma. Beispiel, `"\"comedy\",\"drama\",\"horror"\"`. 

**Wichtig**  
Für Filterausdrücke, die ein `INCLUDE` Element verwenden, um Elemente einzuschließen, müssen Sie Werte für alle Parameter angeben, die im Ausdruck definiert sind. Bei Filtern mit Ausdrücken, die ein `EXCLUDE` Element verwenden, um Elemente auszuschließen, können Sie das `filter-values` weglassen. In diesem Fall verwendet Amazon Personalize diesen Teil des Ausdrucks nicht zum Filtern von Empfehlungen.

```
aws personalize-runtime get-recommendations \
  --campaign-arn Campaign ARN \
  --user-id User ID \
  --filter-arn Filter ARN \
  --filter-values '{
      "Parameter name": "\"value\"",
      "Parameter name": "\"value1\",\"value2\",\"value3\""
    }'
```

### Löschen eines Filters ()AWS CLI
<a name="delete-filter-cli"></a>

 Verwenden Sie den folgenden `delete-filter` Vorgang, um einen Filter zu löschen. Durch `filter ARN` den ARN des Filters ersetzen. 

```
aws personalize delete-filter --filter-arn Filter ARN
```

## Empfehlungen in Echtzeit filtern (AWS SDKs)
<a name="filter-rt-sdk"></a>

Um Empfehlungen mit dem zu filtern AWS SDKs, erstellen Sie einen Filter und wenden ihn dann an, indem Sie den Filter-ARN in einer [GetRecommendations](API_RS_GetRecommendations.md) [GetPersonalizedRanking](API_RS_GetPersonalizedRanking.md) OR-Anfrage angeben.

**Wichtig**  
Um Empfehlungen mithilfe eines Filters mit Parametern und einer Kampagne zu filtern, die Sie vor dem 10. November 2020 bereitgestellt haben, müssen Sie die Kampagne mithilfe des [UpdateCampaign](API_UpdateCampaign.md) Anrufs erneut bereitstellen oder eine neue Kampagne erstellen.

### Einen Filter erstellen ()AWS SDKs
<a name="creating-filter-sdk"></a>

 Erstellen Sie mit der [CreateFilter](API_CreateFilter.md) Operation einen neuen Filter. Der folgende Code zeigt, wie Sie einen Filter erstellen. Geben Sie den Filternamen Amazon Resource Name (ARN) Ihrer Datensatzgruppe an und geben Sie Ihren Filterausdruck an. 

------
#### [ SDK for Python (Boto3) ]

```
import boto3
 
personalize = boto3.client('personalize')
 
response = personalize.create_filter(
    name = 'Filter Name',
    datasetGroupArn = 'Dataset Group ARN',
    filterExpression = 'EXCLUDE ItemID WHERE Items.CATEGORY IN ($CATEGORY)'
) 
filter_arn = response["filterArn"]
print("Filter ARN: " + filter_arn)
```

------
#### [ SDK for Java 2.x ]

```
public static String createFilter(PersonalizeClient personalizeClient,
                                 String filterName,
                                 String datasetGroupArn,
                                 String filterExpression) {
    try {
        CreateFilterRequest request = CreateFilterRequest.builder()
                .name(filterName)
                .datasetGroupArn(datasetGroupArn)
                .filterExpression(filterExpression)
                .build();

        return personalizeClient.createFilter(request).filterArn();
    }
    catch(PersonalizeException e) {
        System.err.println(e.awsErrorDetails().errorMessage());
        System.exit(1);
    }
    return "";
}
```

------
#### [ SDK for JavaScript v3 ]

```
// Get service clients module and commands using ES6 syntax.
import { CreateFilterCommand } from "@aws-sdk/client-personalize";
import { personalizeClient } from "./libs/personalizeClients.js";
// Or, create the client here.
// const personalizeClient = new PersonalizeClient({ region: "REGION"});

// Set the filter's parameters.
export const createFilterParam = {
  datasetGroupArn: "DATASET_GROUP_ARN" /* required */,
  name: "NAME" /* required */,
  filterExpression: "FILTER_EXPRESSION" /*required */,
};

export const run = async () => {
  try {
    const response = await personalizeClient.send(
      new CreateFilterCommand(createFilterParam),
    );
    console.log("Success", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------

Notieren Sie den Filter-ARN für die spätere Verwendung. Um zu überprüfen, ob der Filter aktiv ist, führen Sie den [DescribeFilter](API_DescribeFilter.md) Vorgang aus, bevor Sie den Filter verwenden. Weitere Informationen zur API finden Sie unter [CreateFilter](API_CreateFilter.md). Weitere Informationen zu Filterausdrücken, einschließlich Beispielen, finden Sie unter[Ausdrucksstruktur und Elemente filtern](creating-filter-expressions.md).

### Anwenden eines Filters (AWS SDKs)
<a name="applying-filter-sdk"></a>

Wenn Sie die GetPersonalizedRanking Operationen GetRecommendations, oder verwenden GetActionRecommendations, wenden Sie einen Filter an, indem Sie a `filterArn` und beliebige Filterwerte als Parameter übergeben.

Der folgende Code zeigt, wie Sie gefilterte Amazon Personalize Personalize-Artikelempfehlungen für einen Benutzer abrufen können. Geben Sie die ID des Benutzers an, für den Sie Empfehlungen erhalten möchten, den Amazon-Ressourcennamen (ARN) Ihrer Kampagne und den ARN Ihres Filters. Wenn Sie Empfehlungen von einem Empfehlungsgeber statt von einer Kampagne erhalten, verwenden Sie `recommenderArn` stattdessen den ARN für den Empfehlungsgeber `campaignArn` und geben Sie ihn an. 

Geben Sie für jeden optionalen Parameter in Ihrem Filterausdruck den Parameternamen (Groß- und Kleinschreibung beachten) und den oder die Werte an. `filterValues` Wenn Ihr Filterausdruck beispielsweise einen `$GENRES` Parameter hat, geben Sie *„GENRES“* als Schlüssel und ein oder mehrere Genres, z. B.`"\"Comedy"\"`, als Wert an. Bei mehreren Werten trennen Sie jeden Wert durch ein Komma. Beispiel, `"\"comedy\",\"drama\",\"horror\""`. 

**Wichtig**  
Für Filterausdrücke, die ein `INCLUDE` Element verwenden, um Elemente einzuschließen, müssen Sie Werte für alle Parameter angeben, die im Ausdruck definiert sind. Bei Filtern mit Ausdrücken, die ein `EXCLUDE` Element verwenden, um Elemente auszuschließen, können Sie das `filter-values` weglassen. In diesem Fall verwendet Amazon Personalize diesen Teil des Ausdrucks nicht zum Filtern von Empfehlungen. 

------
#### [ SDK for Python (Boto3) ]

```
import boto3

personalize_runtime = boto3.client("personalize-runtime")

response = personalize_runtime.get_recommendations(
    campaignArn = "Campaign ARN",
    userId = "User ID",
    filterArn = "Filter ARN",
    filterValues = {
      "Parameter name": "\"value1\"",
      "Parameter name": "\"value1\",\"value2\",\"value3\""
      ....
    }
)
```

------
#### [ SDK for Java 2.x ]

Im folgenden Beispiel werden zwei Parameter verwendet, einer mit zwei Werten und einer mit einem Wert. Ändern Sie je nach Ihrem Filterausdruck den Code, um die Felder ParameterName und ParameterValue hinzuzufügen oder zu entfernen.

```
public static void getFilteredRecs(PersonalizeRuntimeClient personalizeRuntimeClient,
                                   String campaignArn,
                                   String userId,
                                   String filterArn,
                                   String parameter1Name,
                                   String parameter1Value1,
                                   String parameter1Value2,
                                   String parameter2Name,
                                   String parameter2Value){

    try {

        Map<String, String> filterValues = new HashMap<>();

        filterValues.put(parameter1Name, String.format("\"%1$s\",\"%2$s\"",
                parameter1Value1, parameter1Value2));
        filterValues.put(parameter2Name, String.format("\"%1$s\"",
                parameter2Value));

        GetRecommendationsRequest recommendationsRequest = GetRecommendationsRequest.builder()
                .campaignArn(campaignArn)
                .numResults(20)
                .userId(userId)
                .filterArn(filterArn)
                .filterValues(filterValues)
                .build();

        GetRecommendationsResponse recommendationsResponse = personalizeRuntimeClient.getRecommendations(recommendationsRequest);
        List<PredictedItem> items = recommendationsResponse.itemList();

        for (PredictedItem item: items) {
            System.out.println("Item Id is : "+item.itemId());
            System.out.println("Item score is : "+item.score());
        }
    } catch (PersonalizeRuntimeException e) {
        System.err.println(e.awsErrorDetails().errorMessage());
        System.exit(1);
    }
}
```

------
#### [ SDK for JavaScript v3 ]

```
// Get service clients module and commands using ES6 syntax.
import { GetRecommendationsCommand } from "@aws-sdk/client-personalize-runtime";
import { personalizeRuntimeClient } from "./libs/personalizeClients.js";
// Or, create the client here:
// const personalizeRuntimeClient = new PersonalizeRuntimeClient({ region: "REGION"});

// Set recommendation request parameters.
export const getRecommendationsParam = {
  campaignArn: "CAMPAIGN_ARN" /* required */,
  userId: "USER_ID" /* required */,
  numResults: 15 /* optional */,
  filterArn: "FILTER_ARN" /* required to filter recommendations */,
  filterValues: {
    PROPERTY:
      '"VALUE"' /* Only required if your filter has a placeholder parameter */,
  },
};

export const run = async () => {
  try {
    const response = await personalizeRuntimeClient.send(
      new GetRecommendationsCommand(getRecommendationsParam),
    );
    console.log("Success!", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------

### Löschen eines Filters (AWS Python SDK)
<a name="delete-filter-sdk"></a>

 Verwenden Sie die folgende `delete_filter` Methode, um einen Filter zu löschen. Durch `filter ARN` den ARN des Filters ersetzen. 

```
import boto3
personalize = boto3.client("personalize")

response = personalize.delete_filter(
  filterArn = "filter ARN"
)
```

# Filtern von Batch-Empfehlungen und Benutzersegmenten (benutzerdefinierte Ressourcen)
<a name="filter-batch"></a>

Das Filtern von Batch-Empfehlungen und Benutzersegmenten funktioniert fast genauso wie das Filtern von Empfehlungen in Echtzeit. Es folgt dem gleichen Arbeitsablauf, der unter [Empfehlungen für Batch-Artikel abrufen](getting-batch-recommendations.md) oder beschrieben ist[Benutzersegmente im Batch-Modus abrufen](getting-user-segments.md). Gehen Sie wie folgt vor, um Batch-Empfehlungen oder Benutzersegmente zu filtern: 

1.  Erstellen Sie einen Filter, genau wie Sie es für Empfehlungen in Echtzeit tun würden. Weitere Informationen finden Sie unter [Empfehlungen in Echtzeit filtern](filter-real-time.md). 

1. Bereiten Sie Ihre Eingabedaten vor und laden Sie sie wie unter [Vorbereiten der Eingabedaten für Batch-Empfehlungen](batch-data-upload.md) oder beschrieben auf Amazon S3 hoch[Vorbereiten der Eingabedaten für Benutzersegmente](prepare-input-data-user-segment.md). Wenn Ihr Filter Platzhalterparameter verwendet, müssen Sie ein zusätzliches `filterValues` Objekt hinzufügen. Weitere Informationen finden Sie unter [Bereitstellung von Filterwerten in Ihrem Eingabe-JSON](#providing-filter-values). Wenn Ihr Filter keine Platzhalterparameter verwendet, können Ihre Eingabedaten den Beispielen unter folgen [JSON-Beispiele für die Eingabe und Ausgabe von Batch-Inferenzjobs](batch-data-upload.md#batch-inference-job-json-examples) [JSON-Beispiele für die Eingabe und Ausgabe von Batchsegmentjobs](prepare-input-data-user-segment.md#batch-segment-job-json-examples) 

1.  Erstellen Sie einen separaten Speicherort für Ihre Ausgabedaten, entweder einen Ordner oder einen anderen Amazon S3 S3-Bucket. 

1.  Erstellen Sie einen [Batch-Inferenzjob](creating-batch-inference-job.md) oder einen [Batch-Segment-Job](creating-batch-seg-job.md). Wenn Sie den Job erstellen, geben Sie den Amazon-Ressourcennamen (ARN) Ihres Filters an.

1.  Wenn der Batch-Inferenz- oder Batch-Segment-Job abgeschlossen ist, rufen Sie die Empfehlungen oder Benutzersegmente von Ihrem Ausgabespeicherort in Amazon S3 ab. 

**Topics**
+ [Bereitstellung von Filterwerten in Ihrem Eingabe-JSON](#providing-filter-values)
+ [Batch-Workflows filtern (Konsole)](#filter-batch-recommendations-console)
+ [Batch-Workflows filtern (AWS SDKs)](#filter-batch-recommendations-sdk)

## Bereitstellung von Filterwerten in Ihrem Eingabe-JSON
<a name="providing-filter-values"></a>

Für Filter mit Platzhalterparametern`$GENRE`, z. B. müssen Sie die Werte für die Parameter in einem `filterValues` Objekt in Ihrem Eingabe-JSON angeben. Bei einem `filterValues` Objekt ist jeder Schlüssel ein Parametername. Jeder Wert ist das Kriterium, das Sie als Parameter übergeben. Umgeben Sie jeden Wert mit maskierten Anführungszeichen:`"filterValues":{"GENRES":"\"drama\""}`. Trennen Sie bei mehreren Werten jeden Wert durch ein Komma: `"filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}` 

**JSON-Beispiel für die Eingabe eines Batch-Inferenz-Jobs**

Im Folgenden finden Sie ein Beispiel für die ersten Zeilen einer JSON-Eingabedatei für einen *Batch-Inferenzjob.* Das Beispiel beinhaltet das `filterValues` Objekt. Der `GENRES` Schlüssel entspricht einem `$GENRES` Platzhalter im Filterausdruck. Der Job in diesem Beispiel verwendet das Rezept für Benutzerpersonalisierung. Geben Sie für RELATED\$1ITEMS-Rezepte eine ItemId anstelle der UserID an. Geben Sie für PERSONALIZED\$1RANKING-Rezepte die UserID und eine ItemList an. 

```
{"userId": "5","filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}}
{"userId": "3","filterValues":{"GENRES":"\"horror\",\"comedy\""}}
{"userId": "34","filterValues":{"GENRES":"\"drama\""}}
```

Weitere Beispiele für die Eingabe von Daten für Batch-Inferenz-Jobs nach Rezept finden Sie unter. [JSON-Beispiele für die Eingabe und Ausgabe von Batch-Inferenzjobs](batch-data-upload.md#batch-inference-job-json-examples) Sie können diese Beispiele als Ausgangspunkt verwenden und das `filterValues` Objekt aus dem obigen Beispiel hinzufügen.

**JSON-Beispiel für die Eingabe eines Batchsegmentjobs**

Im Folgenden finden Sie ein Beispiel für die ersten Zeilen einer JSON-Eingabedatei mit Filterwerten für einen *Batch-Segment-Job*. Der `GENRES` Schlüssel entspricht einem `$GENRES` Platzhalter im Filterausdruck.

```
{"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\"","filterValues":{"COUNTRY":"\"Japan\""}}
{"itemAttributes": "ITEMS.genres = \"Horror\"","filterValues":{"COUNTRY":"\"United States\"\""}}
{"itemAttributes": "ITEMS.genres = \"Action\" AND ITEMS.genres = \"Adventure\"","filterValues":{"COUNTRY":"\"England\""}}
```

Weitere Beispiele für Eingabedaten von Batch-Inferenz-Jobs nach Rezept finden Sie unter. [JSON-Beispiele für die Eingabe und Ausgabe von Batchsegmentjobs](prepare-input-data-user-segment.md#batch-segment-job-json-examples) Sie können diese Beispiele als Ausgangspunkt verwenden und das `filterValues` Objekt aus dem obigen Beispiel hinzufügen.

## Batch-Workflows filtern (Konsole)
<a name="filter-batch-recommendations-console"></a>

Um Batch-Workflows mit der Amazon Personalize-Konsole zu filtern, erstellen Sie einen Filter und anschließend einen Batch-Inferenz-Job oder Batch-Segment-Job und wählen den Filter aus. Vollständige Anweisungen Schritt für Schritt finden Sie unter [Einen Batch-Inferenzjob erstellen (Konsole)](creating-batch-inference-job.md#batch-console) und. [Einen Batch-Segment-Job erstellen (Konsole)](creating-batch-seg-job.md#batch-segment-console) 

## Batch-Workflows filtern (AWS SDKs)
<a name="filter-batch-recommendations-sdk"></a>

Um Batch-Empfehlungen mit dem zu filtern AWS SDKs, erstellen Sie einen Filter und fügen Sie den `FilterArn` Parameter in die [CreateBatchInferenceJob](API_CreateBatchInferenceJob.md) [CreateBatchSegmentJob](API_CreateBatchSegmentJob.md) Oder-Anfrage ein.

 Der folgende Code zeigt, wie Sie mithilfe von einen Batch-Inferenzjob mit einem Filter erstellen. AWS SDK für Python (Boto3) Wir empfehlen, einen anderen Speicherort für Ihre Ausgabedaten zu verwenden (entweder einen Ordner oder einen anderen Amazon S3 S3-Bucket). Eine vollständige Erläuterung aller Felder finden Sie unter[Einen Batch-Inferenzjob erstellen ()AWS SDKs](creating-batch-inference-job.md#batch-sdk). 

```
import boto3
     
personalize = boto3.client("personalize")
 
personalize_rec.create_batch_inference_job (
    solutionVersionArn = "Solution version ARN",
    jobName = "Batch job name",
    roleArn = "IAM role ARN",
    filterArn = "Filter ARN",
    jobInput = 
        {"s3DataSource": {"path": "S3 input path"}},
    jobOutput =
        {"S3DataDestination": {"path": "S3 output path"}}
)
```