使用OpenSearch实例向量检索功能增强搜索能力 本文为您介绍如何使用OpenSearch实例中的向量检索能力,增强实例的搜索能力。 概述 向量检索(Vector Search)是OpenSearch 的高级功能,它允许用户在高维向量空间中进行相似性搜索。这一功能不仅基于传统的关键词匹配,还支持通过向量表示的方式来处理更复杂的查询场景,例如自然语言处理、推荐系统和计算机视觉等。 天翼云云搜索服务开通的OpenSearch集群通过集成近似最近邻(ANN)搜索算法,确保在大规模数据集上实现高效、精准的向量检索,使用户可以快速找到与查询向量最相似的结果。 前提条件 已开通天翼云云搜索服务OpenSearch 集群。 OpenSearch 版本支持KNN向量检索功能(当前版本默认支持)。 本地环境已配置好API访问权限,且能够通过 API 与集群通信。 操作步骤 1. 创建支持向量检索的索引。在OpenSearch中,可以通过以下命令创建一个启用了KNN功能的索引,用于向量检索: PUT myknnindex1 { "settings": { "index": { "knn": true, "knn.algoparam.efsearch": 100 } }, "mappings": { "properties": { "category": { "type": "keyword" }, "brand": { "type": "keyword" }, "style": { "type": "keyword" }, "myvector": { "type": "knnvector", "dimension": 3 } } } } knn: 设置为 true 以启用向量检索功能。 dimension: 指定向量的维度,这里设置为 3。 2. 插入向量数据。创建好索引后,可以通过以下命令插入具有向量字段的数据: PUT myknnindex1/doc/1 { "category": "electronics", "brand": "brandA", "style": "modern", "myvector": [0.5, 0.8, 0.3] } PUT myknnindex1/doc/2 { "category": "furniture", "brand": "brandB", "style": "vintage", "myvector": [0.2, 0.4, 0.7] } PUT myknnindex1/doc/3 { "category": "clothing", "brand": "brandC", "style": "casual", "myvector": [0.9, 0.1, 0.6] } 3. 执行向量检索查询。数据插入完成后,可以通过向量进行检索。以下是一个查询示例,它将基于向量 [0.5, 0.8, 0.3] 进行KNN搜索,并返回最相似的2条记录: POST myknnindex1/search { "size": 10, "query": { "knn": { "myvector": { "vector": [0.5, 0.8, 0.3], "k": 2 } } } } vector: 要进行相似性检索的向量值。 k: 返回与查询向量最相似的k个结果,此例中为2。 4. 查询返回结果示例。以下为检索后的返回结果,其中包含与查询向量最相似的数据文档及其相似度得分(score): { "took" : 200, "timedout" : false, "shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 3, "relation" : "eq" }, "maxscore" : 1.0, "hits" : [ { "index" : "myknnindex1", "id" : "1", "score" : 1.0, "source" : { "category" : "electronics", "brand" : "brandA", "style" : "modern", "myvector" : [0.5, 0.8, 0.3] } }, { "index" : "myknnindex1", "id" : "2", "score" : 0.7092199, "source" : { "category": "furniture", "brand": "brandB", "style": "vintage", "myvector": [0.2, 0.4, 0.7] } } ] } } 通过这些步骤,用户可以在OpenSearch集群中轻松实现基于向量的相似性搜索功能,支持高效处理海量数据并提升搜索体验。