在 OpenSearch 无服务器上配置神经搜索和混合搜索
神经搜索
Amazon OpenSearch 无服务器支持神经搜索功能,可对数据进行语义搜索操作。神经搜索利用机器学习模型理解查询的语义含义和上下文,相较于传统的基于关键词的搜索,能提供更相关的搜索结果。本节说明如何在 OpenSearch无服务器中配置神经搜索,包括所需权限、支持的处理器以及与标准 OpenSearch 实施的主要差异。
借助神经搜索,您可以对数据进行语义搜索,通过理解语义含义解析搜索查询的意图。此功能由以下组件提供支持:
-
文本嵌入摄取管道处理器
-
神经语音
-
神经查询
混合搜索
通过混合搜索,您可以结合关键词搜索和语义搜索功能,以提高搜索相关性。要使用混合搜索,请创建搜索管道,以处理搜索结果以及合并文档得分。有关更多信息,请参阅《OpenSearch 文档》网站中的搜索管道
-
标准化搜索管道处理器
支持的标准化技术
-
min_max -
l2
支持的组合技术
-
arithmetic_mean -
geometric_mean -
harmonic_mean
有关标准化技术和组合技术的更多信息,请参阅《OpenSearch 文档》网站上的请求正文字段
。 -
-
混合查询
神经查询和混合查询
默认情况下,OpenSearch 使用基于关键词的 Okapi BM25 算法计算文档得分,该算法适用于包含关键字的搜索查询。神经搜索为自然语言查询提供新的查询类型,并具备同时进行语义搜索和关键词搜索的能力。
例 : 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 无服务器中配置语义搜索组件,请按照《OpenSearch 文档》网站上神经搜索教程
-
OpenSearch 无服务器仅支持远程模型。必须为远程托管的模型配置连接器。无需部署或删除远程模型。有关更多信息,请参阅《OpenSearch 文档》网站上的语义搜索和混合搜索入门
。 -
当对向量索引进行搜索或搜索最近创建的搜索和摄取管道时,预计会有长达 15 秒的延迟。
配置权限
OpenSearch 无服务器中的神经搜索需要以下权限。有关更多信息,请参阅 受支持的策略权限。
例 :神经搜索策略
-
aoss:*Index:创建存储文本嵌入的向量索引。
-
aoss:*CollectionItems:创建摄取和搜索管道。
-
aoss:*MLResource:创建和注册文本嵌入模型。
-
aoss:APIAccessAll:提供对 OpenSearch API 的访问权限以进行搜索和摄取操作。
以下介绍神经搜索所需的集合数据访问策略。将占位符值替换为您的具体信息。
例 :数据访问策略
[ { "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" ] } ]