在 OpenSearch Serverless 上設定神經搜尋和混合搜尋 - Amazon OpenSearch Service

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

在 OpenSearch Serverless 上設定神經搜尋和混合搜尋

神經搜尋

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

使用神經搜尋,您可以對資料執行語意搜尋,這會考慮語意意義來了解搜尋查詢的意圖。此功能由下列元件提供支援:

  • 文字內嵌擷取管道處理器

  • 神經查詢

  • 神經稀疏查詢

透過混合式搜尋,您可以結合關鍵字和語意搜尋功能來改善搜尋相關性。若要使用混合式搜尋,請建立搜尋管道來處理搜尋結果並結合文件分數。如需詳細資訊,請參閱 OpenSearch 文件網站上的搜尋管道。使用下列元件實作混合式搜尋:

  • 標準化搜尋管道處理器

    支援的標準化技術
    • min_max

    • l2

    支援的組合技術
    • arithmetic_mean

    • geometric_mean

    • harmonic_mean

    如需標準化和組合技術的詳細資訊,請參閱 OpenSearch 文件網站上的請求內文欄位

  • 混合查詢

神經和混合查詢

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

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

如需詳細資訊,請參閱 OpenSearch 文件網站上的神經查詢

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

如需詳細資訊,請參閱 OpenSearch 文件網站上的混合查詢

若要在 Amazon OpenSearch Serverless 中設定語意搜尋元件,請遵循 OpenSearch 文件網站上的神經搜尋教學課程中的步驟。請記住這些重要的差異:

  • OpenSearch Serverless 僅支援遠端模型。您必須將連接器設定為遠端託管模型。您不需要部署或移除遠端模型。如需詳細資訊,請參閱 OpenSearch 文件網站上的語意和混合式搜尋入門

  • 當您搜尋向量索引或搜尋最近建立的搜尋和擷取管道時,最多會有 15 秒的延遲。

設定許可

OpenSearch Serverless 中的神經搜尋需要下列許可。如需詳細資訊,請參閱支援的政策許可

範例 :神經搜尋政策
JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "NeuralSearch", "Effect": "Allow", "Action": [ "aoss:CreateIndex", "aoss:CreateCollectionItems", "aoss:CreateMLResource", "aoss:DescribeCollectionItems", "aoss:UpdateCollectionItems", "aoss:DeleteIndex", "aoss:DeleteCollectionItems", "aoss:DeleteMLResource", "aoss:APIAccessAll", ], "Resource": "*" } ] }
  • aoss:*Index – 建立存放文字內嵌的向量索引。

  • aoss:*CollectionItems – 建立擷取和搜尋管道。

  • aoss:*MLResource – 建立和註冊文字內嵌模型。

  • aoss:APIAccessAll – 提供 OpenSearch APIs存取權,以進行搜尋和擷取操作。

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

範例 :資料存取政策
[ { "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" ] } ]