本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 OpenSearch 无服务器上配置神经搜索和混合搜索
神经搜索
Amazon OpenSearch Serverless 支持神经搜索功能,可对您的数据进行语义搜索操作。Neural Search 使用机器学习模型来理解查询的语义含义和上下文,从而提供比传统的基于关键字的搜索更相关的搜索结果。本节介绍如何在 OpenSearch Serverless 中配置神经搜索,包括所需的权限、支持的处理器以及与标准 OpenSearch 实现的主要区别。
借助神经搜索,您可以对数据进行语义搜索,语义搜索会考虑语义以了解搜索查询的意图。此功能由以下组件提供支持:
-
文本嵌入采集管道处理器
-
神经查询
-
神经稀疏查询
混合搜索
通过混合搜索,您可以通过结合关键字和语义搜索功能来提高搜索相关性。要使用混合搜索,请创建一个搜索管道来处理您的搜索结果并合并文档分数。有关更多信息,请参阅OpenSearch 文档网站上的搜索管道
-
标准化搜索管道处理器
支持的标准化技术
-
min_max
-
l2
支持的组合技术
-
arithmetic_mean
-
geometric_mean
-
harmonic_mean
有关标准化和组合技术的更多信息,请参阅OpenSearch文档网站上的请求正文字段
。 -
-
混合查询
神经查询和混合查询
默认情况下,使用基于关键字的 Okapi BM25 算法 OpenSearch 计算文档分数,该算法适用于包含关键字的搜索查询。神经搜索为自然语言查询提供了新的查询类型,并且能够将语义搜索和关键字搜索结合起来。
例 : 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 无服务器仅支持远程模型。您必须为远程托管的模型配置连接器。您无需部署或移除远程模型。有关更多信息,请参阅OpenSearch 文档网站上的语义搜索和混合搜索入门
。 -
当您根据矢量索引进行搜索或搜索最近创建的搜索和采集管道时,预计会有长达 15 秒的延迟。
配置 权限
OpenSearch 无服务器中的神经搜索需要以下权限。有关更多信息,请参阅 受支持的策略权限。
例 : 神经搜索策略
-
aoss: *Index — 创建存储文本嵌入的矢量索引。
-
aoss: * CollectionItems — 创建采集和搜索管道。
-
aoss: * MLResource — 创建和注册文本嵌入模型。
-
aoss: APIAccess All — 提供 OpenSearch APIs 搜索和采集操作的访问权限。
以下介绍神经搜索所需的集合数据访问策略。placeholder values
用您的具体信息替换。
例 : 数据访问政策
[ { "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
" ] } ]