

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

# 步驟 3：搜尋您的 Amazon CloudSearch 網域
<a name="getting-started-search"></a>

您可以在 Amazon CloudSearch 主控台中使用搜尋測試器來提交範例搜尋請求並檢視結果。您也可以透過 Web 瀏覽器或使用 cURL 提交範例搜尋請求。在您的應用程式中，您可以使用任何 HTTP 程式庫將搜尋流量傳送至您的 Amazon CloudSearch 網域。

## 使用搜尋測試器進行搜尋
<a name="searching-console"></a>

Amazon CloudSearch 主控台中的搜尋測試器可讓您使用任何支援的查詢剖析器來提交範例搜尋請求：簡單、結構化、純素或 dismax。根據預設，請求會使用簡單查詢剖析器處理。您可以指定所選剖析器的選項、篩選和排序結果，以及瀏覽設定的面向。搜尋結果中會自動反白顯示搜尋命中項目。如需如何完成此操作的資訊，請參閱 [反白顯示 Amazon CloudSearch 中的搜尋點](highlighting.md)。您也可以在**搜尋**欄位中輸入詞彙時，選取建議者以取得建議。（您必須先設定建議者，才能取得建議。 如需詳細資訊，請參閱 [在 Amazon CloudSearch 中取得自動完成建議](getting-suggestions.md)。)

根據預設，結果會根據自動產生的相關性分數 *\$1score *進行排序。如需自訂結果排名方式的相關資訊，請參閱 [在 Amazon CloudSearch 中排序結果](sorting-results.md)。

**搜尋您的網域**

1. 前往 Amazon CloudSearch 主控台，網址為 https：//[https://console.aws.amazon.com/cloudsearch/home](https://console.aws.amazon.com/cloudsearch/home)。

1. 在左側導覽面板中，選擇您的**電影**網域以開啟其組態。

1. 選擇**執行測試搜尋**。

1. 若要執行簡單的文字搜尋，請輸入搜尋查詢，然後選擇**執行**。根據預設，會搜尋所有 `text`和 `text-array` 欄位。

若要搜尋特定欄位，請展開**選項**，然後在搜尋欄位欄位中輸入您要搜尋**之欄位**的逗號分隔清單。您可以使用插入號 (^) 將權重附加到每個欄位，以控制搜尋結果中每個欄位的相對重要性。例如，在計算每個相符文件的相關性分數時，指定`title`欄位中的`title^5, description`權重命中值比`description`欄位中的權重命中值多五倍。

若要使用結構化查詢語法，請從**查詢剖析器**功能表中選取**結構化**。選取結構化查詢剖析器後，請在**搜尋**欄位中輸入您的結構化查詢，然後選擇**執行**。例如，若要在 2000 年或更早發行的標題中尋找具有*星號*的所有電影，您可以輸入：`(and title:'star' year:{,2000])`。如需詳細資訊，請參閱[建構複合查詢](searching-compound-queries.md)。若要提交 Lucene 或 DisMax 查詢，請選取適當的查詢剖析器。

您可以為選取的查詢剖析器指定其他選項，以設定預設運算子，並控制可在查詢中使用的運算子。如需詳細資訊，請參閱[搜尋請求參數](search-api.md#search-request-parameters)。

您可以複製並貼上請求 URL，以提交請求並從 Web 瀏覽器檢視回應。請求可以透過 HTTP 或 HTTPS 傳送。

## 從 Web 瀏覽器提交搜尋請求
<a name="searching-browser"></a>

您可以從任何 Web 瀏覽器直接向您的搜尋端點提交搜尋請求。您可使用任何查詢剖析器 (simple、structured、lucene 或 dismax) 並指定各種選項以限制您的搜尋、請求面向資訊、自訂排名和控制要由結果傳回的資訊。

例如，若要搜尋您的電影網域並取得所有可用 *Star Wars* 電影的標題，請將下列搜尋字串附加至您的搜尋端點。(2013-01-01 是 API 版本，且必須指定。)

**Example**  

```
/2013-01-01/search?q=star+wars&return=title
```

**注意**  
網域的搜尋端點會顯示於網域儀表板。您也可以從 AWS 管理主控台執行搜尋、檢視原始請求和回應、從搜尋請求欄位複製請求 URL。網域的搜尋端點和文件服務端點在網域生命週期當中會保持不變。

根據預設，Amazon CloudSearch 會以 JSON 傳回回應。您也可以指定 `format` 參數 `format=xml`，取得 XML 格式的搜尋結果 (請注意，錯誤可能以 JSON 或 XML 格式傳回，具體取決於錯誤源自何處)。

## 搜尋數值欄位
<a name="getting-started-searching-numeric-fields"></a>

 您可以使用結構式查詢語法 `q.parser=structured`，尋找具有特定數值屬性的文件。您可於任何數值欄位內 (`double`、`double-array`、`int`、`int-array`) 搜尋確切值或某範圍的值。若要搜尋某範圍，請指定上限和下限並以逗號分隔，然後用方括號或大括號將範圍括住。使用方括號 ([,]) 含括界限，使用大括號 (\$1,\$1) 排除界限。例如：
+ `year:2000` 比對 year 欄位包含 2000 這個值的文件。
+ `year:[2000,}` 比對 year 欄位包含的值大於或等於 2000 的文件。
+ `year:{,2000]` 比對 year 欄位包含的值小於或等於 2000 的文件。
+ `year:[2000,2011]` 比對 year 欄位包含的值介於 (含括) 2000 到 2011 之間的文件。
+ `year:{2000,2011}` 比對 year 欄位包含的值介於 (不含) 2000 到 2011 之間的文件。

 您也可以搜尋日期欄位是否包含特定日期或日期範圍，但必須用單引號括住每個日期字串：`release_date:['2000-01-01T00:00:00Z','2011-01-01T00:00:00Z']`。

例如，以下結構式查詢會在 title 欄位內搜尋 "star"，尋找所有符合條件於 2000 年之前發行的電影，並傳回每部電影的片名、年份和相關性分數：

**Example**  

```
q=(and title:'star' year:{,2000])&q.parser=structured&return=title,year,_score
```

回應將顯示請求的狀態、符合的文件份數以及每個命中項目請求的欄位。

```
{
    "status": {
        "rid": "hLPckLsoEQoELQo=",
        "time-ms": 2
    },
    "hits": {
        "found": 15,
        "start": 0,
        "hit": [
            {
                "id": "tt0076759",
                "fields": {
                    "title": "Star Wars",
                    "year": "1977",
                    "_score": "5.7601414"
                }
            },
            .
            .
            .
            {
                "id": "tt0088170",
                "fields": {
                    "title": "Star Trek III: The Search for Spock",
                    "year": "1984",
                    "_score": "4.2371693"
                }
            }
        ]
    }
}
```

如需如何建構搜尋查詢的詳細資訊，請參閱[使用 Amazon CloudSearch 搜尋您的資料](searching.md)。

## 對搜尋結果進行排序
<a name="ranking-results"></a>

根據預設，Amazon CloudSearch 會根據自動產生的關聯性 來排序搜尋結果`_score`。您可在搜尋請求中使用 *sort* 參數指定想要用於排名的欄位或運算式，以改變結果的排名方式 （表達式是自訂數值表達式，可針對一組相符文件中的每個文件進行評估。 如需定義自己的表達式的資訊，請參閱 [設定運算式](configuring-expressions.md)。)

若您使用 `sort` 參數指定文字欄位，結果將會依據該欄位按字母順序排序。例如，若要將您的電影網域傳回的結果依片名按字母順序排序，請於查詢字串中加入 `&sort=title asc`：

**Example**  

```
2013-01-01/search?q=(and genres:'Sci-Fi' year:{,2000])&q.parser=structured&return=title,year&sort=title asc
```

請注意，您必須明確指定排序方向，即 `asc` (遞增) 或 `desc` (遞減)。當您依字母順序排序時，Amazon CloudSearch 會依 Unicode 字碼點排序。也就是說，數字會排在英文字母前面，而大寫字母會排在小寫字母前面。數字排序視同字串；例如，10 會排在 2 前面。

同樣地，您可以使用 `sort` 參數指定整數欄位，將結果按數字大小排序。

 如果您是指定欄位或運算式以逗號分隔的清單，第一個欄位或運算式將做為主要排序條件，第二個則做為次要排序條件，依此類推。

如需結果排名方式的詳細資訊，請參閱[在 Amazon CloudSearch 中排序結果](sorting-results.md)。

## 取得面向資訊
<a name="w2aab7c21c12"></a>

「面向」是一種索引欄位，代表您要用以縮小搜尋範圍和篩選搜尋結果的類別。當您向 Amazon CloudSearch 提交搜尋請求時，您可以請求面向資訊，以了解有多少命中項目在面向中共用相同的值。您可以顯示此資訊以及搜尋結果，並用它讓使用者以互動方式縮小搜尋範圍。(通常稱之為分面瀏覽或分面搜尋。)

面向可以是已在網域組態中啟用面向的任何日期、文字或數字欄位。對於每個面向，Amazon CloudSearch 會計算共用相同值的命中次數。您可以定義儲存貯體來計算面向值特定子集的面向計數。只有具有相符項目的儲存貯體才會包含在構面結果中。

**隨搜尋結果取得面向數量**
+ 使用 `facet.FIELD` 選項指定您要計算其面向的欄位。IMDb 電影範例資料已啟用面向分類的欄位如下：`genres`、`rank`、`rating`、`release_date`、`running_time_secs` 和 `year`。面向選項是指定成 JSON 物件。如果 JSON 物件是空的 (`facet.FIELD={}`)，則會對所有欄位值計算面向數量，依面向數量將面向排序，並隨結果傳回前 10 名的面向：

  ```
  q=star&return=title&facet.genres={}
  ```

結果會將面向列示於命中項目的下方。

```
facets": {

    "genres": {
        "buckets": [
            {"value": "Comedy","count": 41},
            .
            .
            .
            {"value": "Sport", "count": 7}
        ]
    }
}
```

您可以指定各種選項來計算選定欄位值的面向、指定結果所要包含的面向值數目上限，以及控制面向的排序方式。

若要定義值區以計算選定欄位值的面向數量，請指定 `buckets` 選項。例如，以下請求會將 year 欄位的面向數量依十年的期間排序：

```
q=star&facet.year={buckets:["[1970,1979]","[1980,1989]","[1990,1999]"]}
```

本例將面向數量侷限於三個指定的範圍內：

```
"facets": {
        "year": {
            "buckets": [
                {"value": "[1970,1979]", "count": 3},
                {"value": "[1980,1989]","count": 7},
                {"value": "[1990,1999]","count": 12}
            ]
        }
}
```

如需如何指定面向選項的詳細資訊，請參閱[在 Amazon CloudSearch 中取得和使用面向資訊](faceting.md)。

## 取得搜尋反白句
<a name="getting-highlights"></a>

搜尋反白句是文字欄位或文字陣列欄位的一段摘錄，顯示了搜尋詞彙出現在該欄位內的位置。

**隨搜尋結果取得反白句資訊**
+ 使用 `highlight.FIELD` 選項指定您要取得其反白句的文字欄位或文字陣列欄位。您必須透過網域的索引選項，對該欄位啟用反白。IMDb 電影範例資料已啟用反白的欄位如下：`actors`、`directors`、`plot` 和 `title`。反白選項是指定成 JSON 物件。如果 JSON 物件是空的 `highlight.FIELD={}`，Amazon CloudSearch 會將搜尋字詞的所有出現次數反白為 HTML 強調標籤 (`<em>term</em>`)，而摘錄會以 HTML 傳回。

  ```
  q=title:'star'&q.parser=structured&return=_no_fields&highlight.title={}
  ```

反白句資訊隨附於各個命中項目。

```
hits": {
    "found": 29,
    "start": 0,
    "hit": [
        {
            "id": "tt0796366",
            "highlights": {
                "title": "<em>Star</em> Trek"
            }
        },
        .
        .
        .
        {
            "id": "tt2488496",
            "highlights": {
                "title": "<em>Star</em> Wars: Episode VII"
            }
        }
    ]
}
```

如需如何指定反白選項的詳細資訊，請參閱[反白顯示 Amazon CloudSearch 中的搜尋點](highlighting.md)。