本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 OpenSearch 无服务器上配置神经搜索和混合搜索
神经搜索
Amazon OpenSearch Serverless 支持神经搜索功能,可对您的数据进行语义搜索操作。神经搜索利用机器学习模型理解查询的语义含义和上下文,相较于传统的基于关键词的搜索,能提供更相关的搜索结果。本节介绍如何在 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 Serverless 中的神经搜索需要以下权限。有关更多信息,请参阅 受支持的策略权限。
例 :神经搜索策略
-
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" ] } ]