

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

# 在 OpenSearch Serverless 上設定神經搜尋和混合搜尋
<a name="serverless-configure-neural-search"></a>

## 神經搜尋
<a name="serverless-configure-neural-search-what-is"></a>

Amazon OpenSearch Serverless 支援對資料進行語意搜尋操作的神經搜尋功能。神經搜尋使用機器學習模型來了解查詢的語意意義和內容，提供比傳統關鍵字式搜尋更相關的搜尋結果。本節說明如何在 OpenSearch Serverless 中設定神經搜尋，包括所需的許可、支援的處理器，以及與標準 OpenSearch 實作的金鑰差異。

使用神經搜尋，您可以對資料執行語意搜尋，這會考慮語意意義來了解搜尋查詢的意圖。此功能由下列元件提供支援：
+ 文字內嵌擷取管道處理器
+ 神經查詢
+ 神經稀疏查詢

## 混合搜尋
<a name="serverless-configure-hybrid-search"></a>

透過混合式搜尋，您可以結合關鍵字和語意搜尋功能來改善搜尋相關性。若要使用混合式搜尋，請建立搜尋管道來處理搜尋結果並結合文件分數。如需詳細資訊，請參閱 *OpenSearch 文件*網站上的[搜尋管道](https://docs.opensearch.org/latest/search-plugins/search-pipelines/index/)。使用下列元件實作混合式搜尋：
+ 標準化搜尋管道處理器

**支援的標準化技術**
  + `min_max`
  + `l2`

**支援的組合技術**
  + `arithmetic_mean`
  + `geometric_mean`
  + `harmonic_mean`

  如需標準化和組合技術的詳細資訊，請參閱 *OpenSearch 文件*網站上的[請求內文欄位](https://docs.opensearch.org/latest/search-plugins/search-pipelines/normalization-processor/#request-body-fields)。
+ 混合查詢

## 神經和混合查詢
<a name="serverless-configure-neural-search-hybrid-queries"></a>

根據預設，OpenSearch 會使用關鍵字型 Okapi BM25 演算法計算文件分數，這非常適合包含關鍵字的搜尋查詢。神經搜尋為自然語言查詢提供了新的查詢類型，並能夠結合語意和關鍵字搜尋。

**Example : `neural`**  

```
"neural": {
  "vector_field": {
    "query_text": "query_text",
    "query_image": "image_binary",
    "model_id": "model_id",
    "k": 100
  }
}
```

如需詳細資訊，請參閱 *OpenSearch 文件*網站上的[神經查詢](https://docs.opensearch.org/latest/query-dsl/specialized/neural/)。

**Example : `hybrid`**  

```
"hybrid": {
      "queries": [
        array of lexical, neural, or combined queries
      ]
    }
```

如需詳細資訊，請參閱 *OpenSearch 文件*網站上的[混合查詢](https://docs.opensearch.org/latest/query-dsl/compound/hybrid/)。

若要在 Amazon OpenSearch Serverless 中設定語意搜尋元件，請遵循 *OpenSearch 文件*網站上的[神經搜尋教學](https://docs.opensearch.org/latest/tutorials/vector-search/neural-search-tutorial/)課程中的步驟。請記住這些重要差異：
+ OpenSearch Serverless 僅支援遠端模型。您必須將連接器設定為遠端託管模型。您不需要部署或移除遠端模型。如需詳細資訊，請參閱 *OpenSearch 文件*網站上的[語意和混合式搜尋入門](https://docs.opensearch.org/latest/tutorials/vector-search/neural-search-tutorial/)。
+ 當您搜尋向量索引或搜尋最近建立的搜尋和擷取管道時，最多會有 15 秒的延遲。

## 設定 許可
<a name="serverless-configure-neural-search-permissions"></a>

OpenSearch Serverless 中的神經搜尋需要下列許可。如需詳細資訊，請參閱[支援的政策許可](serverless-data-access.md#serverless-data-supported-permissions)。

**Example ：神經搜尋政策**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "NeuralSearch",
            "Effect": "Allow",
            "Action": [
              "aoss:CreateIndex",
              "aoss:CreateCollection",
              "aoss:UpdateCollection",
              "aoss:DeleteIndex",
              "aoss:DeleteCollection"
            ],
            "Resource": "arn:aws:aoss:us-east-1:111122223333:collection/your-collection-name"
        }
    ]
}
```
+ **aoss：\$1Index** – 建立存放文字內嵌的向量索引。
+ **aoss：\$1CollectionItems** – 建立擷取和搜尋管道。
+ **aoss：\$1MLResource** – 建立和註冊文字內嵌模型。
+ **aoss：APIAccessAll** – 提供 OpenSearch APIs存取權，以進行搜尋和擷取操作。

以下說明神經搜尋所需的集合資料存取政策。將*預留位置值*取代為您的特定資訊。

**Example ：資料存取政策**  

```
[
    {
        "Description": "Create index permission",
        "Rules": [
            {
                "ResourceType": "index",
                "Resource": ["index/collection_name/*"],
                "Permission": [
                  "aoss:CreateIndex", 
                  "aoss:DescribeIndex",
                  "aoss:UpdateIndex",
                  "aoss:DeleteIndex"
                ]
            }
        ],
        "Principal": [
            "arn:aws:iam::account_id:role/role_name"
        ]
    },
    {
        "Description": "Create pipeline permission",
        "Rules": [
            {
                "ResourceType": "collection",
                "Resource": ["collection/collection_name"],
                "Permission": [
                  "aoss:CreateCollectionItems",
                  "aoss:DescribeCollectionItems",
                  "aoss:UpdateCollectionItems",
                  "aoss:DeleteCollectionItems"
                ]
            }
        ],
        "Principal": [
            "arn:aws:iam::account_id:role/role_name"
        ]
    },
    {
        "Description": "Create model permission",
        "Rules": [
            {
                "ResourceType": "model",
                "Resource": ["model/collection_name/*"],
                "Permission": ["aoss:CreateMLResources"]
            }
        ],
        "Principal": [
            "arn:aws:iam::account_id:role/role_name"
        ]
    }
]
```