

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 필터 표현식 구조 및 요소
<a name="creating-filter-expressions"></a>

이 섹션에는 필터 표현식의 구조와 요소에 대한 정보가 포함되어 있습니다.

**Topics**
+ [필터 표현식 구조](#filter-expression-structure)
+ [필터 표현식 요소](#filter-expression-elements)

## 필터 표현식 구조
<a name="filter-expression-structure"></a>

필터 표현식의 일반적인 구조는 다음과 같습니다.

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

수동으로 필터 표현식을 만들거나 콘솔의 [표현식 빌더](filter-real-time.md#using-filter-expression-builder)를 사용하여 표현식 구문 및 구조에 대한 도움을 받을 수 있습니다.

## 필터 표현식 요소
<a name="filter-expression-elements"></a>

필터 표현식을 만들려면 다음 요소를 사용합니다.

**INCLUDE 또는 EXCLUDE**  
필터 기준을 충족하는 항목으로만 추천을 제한하려면 `INCLUDE`를 사용하고 또는 필터 기준을 충족하는 모든 항목을 제거하려면 `EXCLUDE`를 사용합니다.**

**ItemID/ActionID/UserID**  
`INCLUDE` 또는 `EXCLUDE` 요소 뒤에 다음 요소 중 하나를 사용합니다. 항목(항목 추천용), 작업(작업 추천용) 또는 사용자(사용자 세그먼트용)를 필터링하는지에 따라 사용하는 요소가 달라집니다.

**WHERE**  
`WHERE`는 항목, 작업 또는 사용자의 조건을 확인하는 데 사용합니다. `WHERE` 요소는 `ItemID`, `ActionID` 또는 `UserID` 뒤에 사용해야 합니다.

**AND/OR**  
동일한 필터 표현식 내에서 여러 조건을 함께 연결하려면 `AND`또는 `OR`를 사용합니다. `AND` 또는 `OR`를 사용하여 서로 연결된 조건은 첫 번째 조건에 사용된 데이터세트의 필드에만 영향을 줄 수 있습니다.

**Dataset.field**  
추천 필터링 기준으로 사용할 데이터세트와 메타데이터 필드를 `dataset`.`field`의 형식으로 제공합니다. 예를 들어, 항목 데이터 세트의 장르 필드를 기반으로 항목 상호 작용을 필터링하려면 필터 표현식에 Items.genres를 사용합니다.

**IF 조건**  
`IF` 조건은 `CurrentUser`의 조건을 확인할 때만 사용하고 표현식 끝에서 한 번만 사용합니다.**** 하지만 `AND`를 사용하여 `IF`조건을 확장할 수 있습니다.

**CurrentUser.attribute**  
 추천을 받는 사용자를 기준으로 항목 추천을 필터링하려면 IF 조건에서만 `CurrentUser`를 사용하고 사용자 필드를 제공합니다.** 예를 들어 `CurrentUser.AGE`입니다.

**CurrentItem.attribute**  
 관련 항목 레시피 및 사용 사례의 경우에만 관련 항목 추천 요청에서 지정한 항목의 속성을 기준으로 항목을 필터링하려면 `CurrentItem`.`attribute`를 사용합니다. 예: `CurrentItem.GENRE`또는 `CurrentItem.PRICE`.  
 도메인 사용 사례 또는 사용자 지정 레시피가 유사-항목 레시피 또는 X보다 좋은 제품 도메인 사용 사례와 같은 관련 항목 추천을 생성하는 경우에만 currentItem 요소가 포함된 필터를 적용할 수 있습니다.** `CurrentItem` 요소를 사용하여 필터를 처음 만들 때는 필터 생성에 몇 분 정도 걸릴 수 있습니다. 암호화 AWS KMS 에를 사용하는 경우 필터 생성에 최대 15분이 걸릴 수 있습니다.

**IN/NOT IN**  
하나 이상의 문자열 값이 일치하거나 일치하지 않는 것을 기준으로 필터링하려면 `IN`또는 `NOT IN`를 비교 연산자로 사용합니다. Personalize는 정확한 문자열만 필터링합니다.

**비교 연산자**  
=, <, <=, >, >=, \$1= 연산자를 사용하여 자리 표시자 파라미터로 전달된 데이터를 비롯한 수치 데이터가 같은지 테스트할 수 있습니다.

**별표(\$1) 문자**  
`*`는 모든 유형의 상호작용을 포함하거나 제외하는 데 사용합니다. `*`는 `Interactions`데이터세트의 `EVENT_TYPE`필드를 사용하는 필터 *표현식에만* 사용합니다.

**파이프 구분자**  
파이프 구분자(`|`)를 사용하여 여러 표현식을 연결할 수 있습니다. 자세한 내용은 [여러 표현식 결합](multiple-expression-example.md)단원을 참조하세요.

**파라미터**  
비교 연산자 또는 `IN`연산자를 사용하는 표현식의 경우 자리 표시자 파라미터를 값으로 추가하려면 달러 기호(\$1)와 파라미터 이름을 사용합니다. 예를 들어 `$GENRES`입니다. 이 예제에서는 추천을 받을 때 필터링 기준으로 삼을 장르를 입력합니다.  
표현식에 파라미터를 추가할 때 파라미터 이름을 정의합니다. 파라미터 이름이 필드 이름과 일치하지 않아도 됩니다. 필드 이름과 비슷하고 기억하기 쉬운 파라미터 이름을 사용하는 것이 좋습니다. 추천 요청에 필터를 적용할 때 파라미터 이름(대소문자 구분)을 사용합니다. AWS SDKS를 사용할 때 자리 표시자 파라미터가 있는 필터를 적용하는 방법을 보여주는 예제는 섹션을 참조하세요[필터(AWS SDKs) 적용](filter-real-time.md#applying-filter-sdk).