

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 的語意搜尋 AWS Glue Data Catalog
<a name="catalog-semantic-search"></a>

**注意**  
商業內容和語意搜尋為 預覽版 AWS Glue ，可能會有所變更。

除了確切關鍵字比對之外，語意搜尋還可讓您透過意義探索資料資產。結果會依與查詢的語意相似度進行排名。您可以使用資產類型、中繼資料欄位和詞彙表術語的篩選條件來縮小結果範圍。

## 使用 SearchAssets API
<a name="catalog-semantic-search-api"></a>

`SearchAssets` API 接受 `SearchText`、 `FilterClause`或兩者。兩者皆未提供時，會傳回所有資產。選用參數：`Sort`、`MaxResults`、`NextToken`。

### 文字搜尋
<a name="catalog-semantic-search-text"></a>

```
aws glue search-assets \
    --search-text "customer purchases"
```

輸出範例：

```
{
    "Items": [
        {"Id": "c9vq7sh2fk4t2h", "AssetName": "Customer Sales Transactions", "AssetTypeId": "Table"}
    ]
}
```

使用 限制結果`--max-results`：

```
aws glue search-assets \
    --search-text "quarterly revenue" \
    --max-results 5
```

### 篩選搜尋結果
<a name="catalog-semantic-search-filters"></a>

使用 `FilterClause`縮小結果範圍。支援的篩選條件類型：
+ **AttributeFilter** – 運算子：`equals`、`greaterThan`、`greaterThanOrEquals``lessThan`、`lessThanOrEquals`、、`notExists`。
+ **AndAllFilters** – 所有篩選條件都必須相符 （邏輯 AND)。
+ **OrAnyFilters** – 至少一個必須符合 （邏輯 OR)。

**依單一屬性篩選**  
僅篩選至資料表資產：

```
aws glue search-assets \
    --search-text "revenue" \
    --filter-clause '{
        "AttributeFilter": {
            "Attribute": "type",
            "Operator": "equals",
            "Value": {"StringValue": "Table"}
        }
    }'
```

**將篩選條件與 AND 邏輯結合**  
尋找時間戳記之後更新的資料表資產：

```
aws glue search-assets \
    --search-text "customer data" \
    --filter-clause '{
        "AndAllFilters": [
            {"AttributeFilter": {"Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Table"}}},
            {"AttributeFilter": {"Attribute": "updatedAt", "Operator": "greaterThan", "Value": {"LongValue": 1718400000}}}
        ]
    }'
```

**將篩選條件與 OR 邏輯結合**  
搜尋資料表或技能資產：

```
aws glue search-assets \
    --search-text "customer data" \
    --filter-clause '{
        "OrAnyFilters": [
            {"AttributeFilter": {"Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Table"}}},
            {"AttributeFilter": {"Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Skill"}}}
        ]
    }'
```

**依詞彙表字詞篩選**  
篩選以使用特定詞彙表詞彙標記的資產 （依詞彙 ID)：

```
aws glue search-assets \
    --search-text "financial data" \
    --filter-clause '{
        "AttributeFilter": {
            "Attribute": "glossaryTerms",
            "Operator": "equals",
            "Value": {"StringValue": "{{glossary-term-id}}"}
        }
    }'
```

**使用巢狀 AND 和 OR 篩選條件**  
尋找具有特定詞彙表詞彙的資料表或技能資產：

```
aws glue search-assets \
    --search-text "customer" \
    --filter-clause '{
        "AndAllFilters": [
            {"OrAnyFilters": [
                {"AttributeFilter": {"Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Table"}}},
                {"AttributeFilter": {"Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Skill"}}}
            ]},
            {"AttributeFilter": {"Attribute": "glossaryTerms", "Operator": "equals", "Value": {"StringValue": "{{glossary-term-id}}"}}}
        ]
    }'
```

### 排序搜尋結果
<a name="catalog-semantic-search-sort"></a>

根據預設，結果會依語意相關性排序。若要依屬性排序：

```
aws glue search-assets \
    --search-text "customer purchases" \
    --sort '{"Attribute": "assetName", "Order": "ASCENDING"}'
```

```
aws glue search-assets \
    --search-text "customer purchases" \
    --sort '{"Attribute": "updatedAt", "Order": "DESCENDING"}'
```

**注意**  
當您指定排序屬性時，結果會依該屬性排序，而不是依語意相關性排序。

### 對搜尋結果進行分頁
<a name="catalog-semantic-search-pagination"></a>

當結果超過 時`MaxResults`，回應會包含 `NextToken`。使用它來擷取其他頁面。

```
aws glue search-assets \
    --search-text "customer data" \
    --max-results 10 \
    --next-token "eyJsYXN0RXZhbHVhdGVkS2V5Ijp7ImlkIjp7InMiOiJhMWIyYzNkNCJ9fX0="
```

繼續，直到回應不再包含 為止`NextToken`。

## 執行篩選條件限定查詢
<a name="catalog-semantic-search-filter-only"></a>

僅使用 `FilterClause` 而不使用 `SearchText`來列出沒有語意排名的資產。

```
aws glue search-assets \
    --filter-clause '{"AttributeFilter": {"Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Table"}}}' \
    --max-results 20
```

**注意**  
當您省略 `SearchText`和 時`FilterClause`，API 會傳回所有資產。

## 範例
<a name="catalog-semantic-search-examples"></a>

**探索網域的技能資產**  
尋找與銷售資料相關的技能資產：

```
aws glue search-assets \
    --search-text "sales domain usage rules" \
    --filter-clause '{"AttributeFilter": {"Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Skill"}}}'
```

**注意**  
此查詢只會傳回自訂技能資產。`SearchAssets` API 不會傳回受管技能。

**合併文字搜尋和排序**  
取得相符資產的完整檢視：

```
aws glue search-assets \
    --search-text "customer" \
    --sort '{"Attribute": "updatedAt", "Order": "DESCENDING"}' \
    --max-results 10
```