

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memfilter rekomendasi waktu nyata
<a name="filter-real-time"></a>

Anda dapat memfilter rekomendasi real-time dengan konsol Amazon Personalize, AWS Command Line Interface (AWS CLI), atau. AWS SDKs

 Ketika Anda mendapatkan rekomendasi item yang dipersonalisasi atau item serupa, Anda dapat menentukan promosi dalam permintaan Anda. *Promosi* menggunakan filter untuk menentukan aturan bisnis tambahan yang berlaku untuk subset item yang direkomendasikan yang dapat dikonfigurasi. Untuk informasi selengkapnya, lihat [Mempromosikan item dalam rekomendasi waktu nyata](promoting-items.md). 

**Topics**
+ [Memfilter rekomendasi waktu nyata (konsol)](#filter-rt-console)
+ [Memfilter rekomendasi waktu nyata ()AWS CLI](#filter-rt-cli)
+ [Memfilter rekomendasi waktu nyata ()AWS SDKs](#filter-rt-sdk)

## Memfilter rekomendasi waktu nyata (konsol)
<a name="filter-rt-console"></a>

Untuk memfilter rekomendasi real-time menggunakan konsol, buat filter dan kemudian terapkan ke permintaan rekomendasi. 

**catatan**  
Untuk memfilter rekomendasi menggunakan filter dengan parameter dan kampanye yang diterapkan sebelum 10 November 2020, Anda harus menerapkan ulang kampanye dengan menggunakan [UpdateCampaign](API_UpdateCampaign.md) operasi atau membuat kampanye baru.

### Membuat filter (konsol)
<a name="creating-filter-console"></a>

 Untuk membuat filter di konsol, pilih grup kumpulan data yang berisi kampanye atau pemberi rekomendasi yang ingin Anda gunakan untuk mendapatkan rekomendasi yang difilter. Kemudian berikan nama filter dan ekspresi filter.

**Untuk membuat filter (konsol)**

1. Buka konsol Amazon Personalize di [https://console.aws.amazon.com/personalize/rumah](https://console.aws.amazon.com/personalize/home) dan masuk ke akun Anda. 

1. Pilih grup kumpulan data yang berisi kampanye atau pemberi rekomendasi yang ingin Anda gunakan untuk mendapatkan rekomendasi yang difilter.

1. Di panel navigasi, pilih **Filter** dan kemudian pilih **Buat filter baru**. Halaman **Create filter** ditampilkan.  
![\[Menggambarkan halaman buat filter dengan nama filter dan bidang ekspresi.\]](http://docs.aws.amazon.com/id_id/personalize/latest/dg/images/create-filter-page.png)

1. Untuk **nama Filter**, masukkan nama untuk filter Anda. Anda akan memilih filter dengan nama ini saat Anda menerapkannya pada permintaan rekomendasi.

1. Untuk **Expression**, pilih **Build expression** atau **Add expression secara manual** dan build atau masukkan ekspresi Anda:
   + Untuk menggunakan pembuat ekspresi, pilih **Build expression**. Pembuat ekspresi menyediakan struktur, bidang, dan pedoman untuk membuat ekspresi filter yang diformat dengan benar. Untuk informasi selengkapnya, lihat [Menggunakan pembuat ekspresi filter](#using-filter-expression-builder).
   +  Untuk memasukkan ekspresi Anda sendiri, pilih **Tambahkan ekspresi secara manual**. Untuk informasi selengkapnya, lihat [Filter elemen ekspresi](creating-filter-expressions.md#filter-expression-elements). 

1. Pilih **Selesai**. Halaman ikhtisar filter menunjukkan nama sumber daya Amazon (ARN) filter, status, dan ekspresi filter lengkap. Untuk menghapus filter, pilih **Hapus**. Untuk informasi tentang menemukan dan menghapus filter setelah Anda meninggalkan halaman ikhtisar, lihat[Menghapus filter (konsol)](#delete-filter-console).  
![\[Menggambarkan halaman detail filter dengan ARN dan ekspresi filter.\]](http://docs.aws.amazon.com/id_id/personalize/latest/dg/images/filter-details-page.png)

### Menerapkan filter (konsol)
<a name="apply-filter-console"></a>

 Untuk menerapkan filter, di Rekomendasi **pengujian** (untuk pemberi rekomendasi) atau **Hasil kampanye uji** (untuk kampanye khusus), pilih filter dan masukkan nilai parameter filter apa pun. Kemudian dapatkan rekomendasi untuk pengguna. 

**penting**  
Untuk ekspresi filter yang menggunakan `INCLUDE` elemen, Anda harus memberikan nilai untuk semua parameter yang didefinisikan dalam ekspresi. Untuk filter dengan ekspresi yang menggunakan `EXCLUDE` elemen, Anda dapat menghilangkan. `filter-values` Dalam kasus ini, Amazon Personalize tidak menggunakan bagian ekspresi tersebut untuk memfilter rekomendasi.

**Untuk menerapkan filter (konsol)**

1. Buka konsol Amazon Personalize di [https://console.aws.amazon.com/personalize/rumah](https://console.aws.amazon.com/personalize/home) dan masuk ke akun Anda. 

1. Pilih grup kumpulan data yang berisi kampanye atau pemberi rekomendasi yang ingin Anda gunakan untuk mendapatkan rekomendasi yang difilter.

1. Bergantung pada jenis grup kumpulan data atau tipe sumber daya Anda, lakukan salah satu hal berikut:

   1. **Untuk grup kumpulan data Domain, di panel navigasi pilih Rekomendasi.**

   1. **Untuk grup kumpulan data kustom atau sumber daya kustom, di panel navigasi pilih Sumber **daya kustom** lalu Kampanye.**

1. Pada halaman **Rekomendasi** atau **Kampanye**, pilih pemberi rekomendasi target atau kampanye.

1. Sebagai perbandingan, mulailah dengan mendapatkan rekomendasi tanpa menerapkan filter. Di bawah **Rekomendasi **pengujian/Hasil kampanye uji**, masukkan ID pengguna yang ingin Anda rekomendasikan**, atau ID item untuk item terkait, dan pilih **Dapatkan rekomendasi**. Tabel yang berisi rekomendasi teratas muncul.  
![\[Menggambarkan hasil rekomendasi tanpa menerapkan filter.\]](http://docs.aws.amazon.com/id_id/personalize/latest/dg/images/Recommendations_no-filter.PNG)

1. Dari menu **Filter name**, pilih filter yang Anda buat. Jika filter Anda memiliki parameter placeholder, bidang terkait untuk setiap parameter akan muncul.

1. Jika Anda menggunakan filter dengan parameter placeholder, untuk setiap parameter, masukkan nilai untuk menetapkan kriteria filter. Untuk menggunakan beberapa nilai untuk satu parameter, pisahkan setiap nilai dengan koma.

1. Menggunakan yang sama `User ID` atau `Item ID` seperti pada langkah sebelumnya, pilih **Dapatkan rekomendasi**. Tabel rekomendasi muncul.  
![\[Menggambarkan hasil rekomendasi dengan filter yang diterapkan.\]](http://docs.aws.amazon.com/id_id/personalize/latest/dg/images/Recommendations_filter.png)

   Misalnya, jika pengguna sudah membeli item yang direkomendasikan, filter menghapusnya dari daftar rekomendasi. Dalam contoh ini, item 2657, 2985 digantikan oleh item yang paling cocok yang tidak dibeli pengguna (item 2641 dan 1573).

### Menggunakan pembuat ekspresi filter
<a name="using-filter-expression-builder"></a>

**Pembuat Ekspresi** pada halaman **Buat filter** menyediakan struktur, bidang, dan pedoman untuk membuat filter yang diformat dengan benar.

![\[Menggambarkan bidang pembuat ekspresi pada halaman buat filter.\]](http://docs.aws.amazon.com/id_id/personalize/latest/dg/images/expression-builder-empty.png)


Untuk membangun ekspresi filter:
+ Gunakan bidang **Type**, **Action**, **Property**, **Operator**, dan **Value** untuk membuat ekspresi. 

  Untuk **Nilai**, masukkan nilai tetap atau, untuk menetapkan kriteria filter saat Anda mendapatkan rekomendasi, masukkan *\$1* \$1 nama parameter. Misalnya, `$GENRES`. Ketika Anda mendapatkan rekomendasi, Anda akan memberikan nilai atau nilai untuk difilter. Dalam contoh ini, Anda akan memberikan genre atau daftar genre ketika Anda mendapatkan rekomendasi.

  Pisahkan beberapa nilai non-parameter dengan koma. Anda tidak dapat menambahkan parameter yang dipisahkan koma ke filter.
**catatan**  
Setelah Anda memilih **Properti** (dalam `dataset.field` format), nilai **Properti** untuk setiap baris berikutnya yang dirantai oleh `AND` atau `OR` kondisi harus menggunakan yang sama. `dataset`
+  Gunakan tombol **\$1** dan **X** untuk menambah atau menghapus baris dari ekspresi Anda. Anda tidak dapat menghapus baris pertama. 
+  Untuk baris baru, gunakan `AND``IF`,, atau `OR` operator pada menu **AND** untuk membuat rantai kondisi. 

  Untuk `IF` kondisi:
  + Setiap ekspresi hanya dapat berisi satu `IF` item. Jika Anda menghapus kondisi IF, pembuat Ekspresi menghapus `AND` kondisi apa pun yang mengikutinya.
  + Anda dapat menggunakan `IF` kondisi hanya untuk ekspresi yang memfilter oleh`CurrentUser`.
+  Pilih **Tambahkan ekspresi** tombol untuk menambahkan ekspresi filter tambahan untuk pemfilteran yang lebih tepat. Setiap ekspresi pertama-tama dievaluasi secara independen dan hasilnya adalah penyatuan dari dua hasil. 
**catatan**  
Untuk membuat filter yang menggunakan kumpulan data interaksi Item dan Item, atau kumpulan data interaksi Tindakan dan Tindakan, Anda *harus* menggunakan beberapa ekspresi.

#### Contoh pembuat ekspresi
<a name="expression-builder-example"></a>

Contoh berikut menunjukkan cara membuat filter yang mengecualikan item dengan genre yang Anda tentukan saat Anda mendapatkan rekomendasi (perhatikan parameter placeholder \$1GENRES). Filter juga mengecualikan item dengan lebih `DOWNLOAD_COUNT` dari`200`, tetapi hanya jika usia pengguna saat ini lebih besar dari`17`.

![\[Menunjukkan cara menggunakan pembuat ekspresi untuk membangun ekspresi filter contoh.\]](http://docs.aws.amazon.com/id_id/personalize/latest/dg/images/create-filter-expression-builder.png)


### Menghapus filter (konsol)
<a name="delete-filter-console"></a>

Menghapus filter akan menghapus filter dari daftar filter untuk grup kumpulan data.

**penting**  
Anda tidak dapat menghapus filter saat pekerjaan inferensi batch sedang berlangsung.

**Untuk menghapus filter (konsol)**

1. Buka konsol Amazon Personalize di [https://console.aws.amazon.com/personalize/rumah](https://console.aws.amazon.com/personalize/home) dan masuk ke akun Anda. 

1. Dari daftar **grup Dataset**, pilih grup kumpulan data yang berisi filter yang ingin Anda hapus. 

1. Di panel navigasi, pilih **Filter**.

1. Dari daftar filter, pilih filter yang ingin Anda hapus dan pilih **Lihat Detail**. Halaman detail filter muncul.

1. Pilih **Hapus** dan konfirmasikan penghapusan di kotak dialog konfirmasi. 

## Memfilter rekomendasi waktu nyata ()AWS CLI
<a name="filter-rt-cli"></a>

Untuk memfilter rekomendasi menggunakan AWS CLI, Anda membuat filter dan kemudian menerapkannya dengan menentukan filter ARN dalam permintaan [GetRecommendations](API_RS_GetRecommendations.md) atau[GetPersonalizedRanking](API_RS_GetPersonalizedRanking.md).

**penting**  
Untuk memfilter rekomendasi menggunakan filter dengan parameter dan kampanye yang Anda gunakan sebelum 10 November 2020, Anda harus menerapkan ulang kampanye dengan menggunakan [UpdateCampaign](API_UpdateCampaign.md) panggilan atau membuat kampanye baru.

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

Gunakan `create-filter` operasi berikut untuk membuat filter dan menentukan ekspresi filter. 

Ganti `Filter name` dengan nama filter, dan `Dataset group ARN` dengan Amazon Resource Name (ARN) dari grup dataset. Ganti sampel `filter-expression` dengan ekspresi filter Anda sendiri. 

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

 Jika berhasil, filter ARN ditampilkan. Rekam untuk digunakan nanti. Untuk memverifikasi bahwa filter aktif, gunakan [DescribeFilter](API_DescribeFilter.md) operasi sebelum Anda menggunakan filter. 

 Untuk informasi selengkapnya tentang API, lihat [CreateFilter](API_CreateFilter.md). Untuk informasi selengkapnya tentang ekspresi filter, termasuk contoh, lihat[Filter struktur ekspresi dan elemen](creating-filter-expressions.md). 

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

Saat Anda menggunakan`get-recommendations`, `get-action-recommendations` atau `get-personalized-ranking` operasi, Anda menerapkan filter dengan meneruskan `filter-arn` dan nilai filter apa pun sebagai parameter. 

Berikut ini adalah contoh `get-recommendations` operasi. Ganti `Campaign ARN` dengan Nama Sumber Daya Amazon (ARN) kampanye Anda `User ID` dengan ID pengguna yang Anda dapatkan rekomendasinya, dan `Filter ARN` dengan ARN filter Anda. Jika Anda mendapatkan rekomendasi dari pemberi rekomendasi alih-alih kampanye, gunakan `recommender-arn` alih-alih `--campaign-arn` dan berikan ARN untuk pemberi rekomendasi.

Jika ekspresi Anda memiliki parameter apa pun, sertakan `filter-values` objek. Untuk setiap parameter dalam ekspresi filter Anda, berikan nama parameter (case sensitive) dan nilainya. Misalnya, jika ekspresi filter Anda memiliki `$GENRE` parameter, berikan *“GENRE”* sebagai kunci, dan genre atau genre, seperti`"Comedy"`, sebagai nilai. Pisahkan beberapa nilai dengan koma. Misalnya, `"\"comedy\",\"drama\",\"horror"\"`. 

**penting**  
Untuk ekspresi filter yang menggunakan `INCLUDE` elemen untuk menyertakan item, Anda harus memberikan nilai untuk semua parameter yang ditentukan dalam ekspresi. Untuk filter dengan ekspresi yang menggunakan `EXCLUDE` elemen untuk mengecualikan item, Anda dapat menghilangkan. `filter-values` Dalam kasus ini, Amazon Personalize tidak menggunakan bagian ekspresi tersebut untuk memfilter rekomendasi.

```
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\""
    }'
```

### Menghapus filter ()AWS CLI
<a name="delete-filter-cli"></a>

 Gunakan `delete-filter` operasi berikut untuk menghapus filter. Ganti `filter ARN` dengan ARN filter. 

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

## Memfilter rekomendasi waktu nyata ()AWS SDKs
<a name="filter-rt-sdk"></a>

Untuk memfilter rekomendasi menggunakan AWS SDKs, Anda membuat filter dan kemudian menerapkannya dengan menentukan filter ARN dalam permintaan [GetRecommendations](API_RS_GetRecommendations.md) atau[GetPersonalizedRanking](API_RS_GetPersonalizedRanking.md).

**penting**  
Untuk memfilter rekomendasi menggunakan filter dengan parameter dan kampanye yang Anda gunakan sebelum 10 November 2020, Anda harus menerapkan ulang kampanye dengan menggunakan [UpdateCampaign](API_UpdateCampaign.md) panggilan atau membuat kampanye baru.

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

 Buat filter baru dengan [CreateFilter](API_CreateFilter.md) operasi. Kode berikut menunjukkan cara membuat filter. Tentukan nama filter, Nama Sumber Daya Amazon (ARN) grup kumpulan data Anda, dan berikan ekspresi filter Anda. 

------
#### [ 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();
```

------

Rekam filter ARN untuk digunakan nanti. Untuk memverifikasi bahwa filter aktif, gunakan [DescribeFilter](API_DescribeFilter.md) operasi sebelum menggunakan filter. Untuk informasi selengkapnya tentang API, lihat [CreateFilter](API_CreateFilter.md). Untuk informasi selengkapnya tentang ekspresi filter, termasuk contoh, lihat[Filter struktur ekspresi dan elemen](creating-filter-expressions.md).

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

Saat Anda menggunakan GetRecommendations, GetActionRecommendations, atau GetPersonalizedRanking operasi, terapkan filter dengan melewatkan nilai filter `filterArn` dan apa pun sebagai parameter.

Kode berikut menunjukkan cara mendapatkan rekomendasi item Amazon Personalize yang difilter untuk pengguna. Tentukan ID pengguna yang ingin Anda rekomendasikan, Nama Sumber Daya Amazon (ARN) kampanye Anda, dan ARN filter Anda. Jika Anda mendapatkan rekomendasi dari pemberi rekomendasi alih-alih kampanye, gunakan `recommenderArn` alih-alih `campaignArn` dan berikan ARN untuk pemberi rekomendasi. 

Untuk`filterValues`, untuk setiap parameter opsional dalam ekspresi filter Anda, berikan nama parameter (case sensitive) dan nilai atau nilai. Misalnya, jika ekspresi filter Anda memiliki `$GENRES` parameter, berikan *“GENRES”* sebagai kunci, dan genre atau genre, seperti`"\"Comedy"\"`, sebagai nilai. Untuk beberapa nilai, pisahkan setiap nilai dengan koma. Misalnya, `"\"comedy\",\"drama\",\"horror\""`. 

**penting**  
Untuk ekspresi filter yang menggunakan `INCLUDE` elemen untuk menyertakan item, Anda harus memberikan nilai untuk semua parameter yang ditentukan dalam ekspresi. Untuk filter dengan ekspresi yang menggunakan `EXCLUDE` elemen untuk mengecualikan item, Anda dapat menghilangkan. `filter-values` Dalam kasus ini, Amazon Personalize tidak menggunakan bagian ekspresi tersebut untuk memfilter rekomendasi. 

------
#### [ 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 ]

Contoh berikut menggunakan dua parameter, satu dengan dua nilai dan satu dengan satu nilai. Bergantung pada ekspresi filter Anda, ubah kode untuk menambah atau menghapus bidang ParameterName dan ParameterValue.

```
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();
```

------

### Menghapus filter (AWS Python SDK)
<a name="delete-filter-sdk"></a>

 Gunakan `delete_filter` metode berikut untuk menghapus filter. Ganti `filter ARN` dengan ARN filter. 

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

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