搜索向量数据
OpenSearch 支持多种向量数据搜索方法,这些方法根据向量的创建和索引方式进行了定制。本指南介绍了原始向量搜索和自动生成嵌入式搜索的查询语法及选项。
搜索类型比较
下表比较了每种向量搜索方法的搜索语法和典型用例。
搜索原始向量
要搜索原始向量,请使用 knn
查询类型,提供 vector
数组作为输入,并指定返回结果的数量 k
。
GET /my-raw-vector-index/_search
{
"query": {
"knn": {
"my_vector": {
"vector": [0.1, 0.2, 0.3],
"k": 2
}
}
}
}
搜索自动生成的嵌入
OpenSearch 支持AI 驱动的搜索方法,包括语义搜索、混合搜索、多模态搜索以及带有检索增强生成 (RAG) 的对话式搜索。这些方法会自动从查询输入中生成嵌入。
要运行 AI 驱动的搜索,请使用 neural
查询类型。指定 query_text
输入、您在摄取管道中配置的嵌入模型的模型 ID,以及返回结果的数量 k
。要从搜索结果中排除嵌入,请在 _source.excludes
参数中指定嵌入字段。
GET /my-ai-search-index/_search
{
"_source": {
"excludes": [
"output_embedding"
]
},
"query": {
"neural": {
"output_embedding": {
"query_text": "What is AI search?",
"model_id": "mBGzipQB2gmRjlv_dOoB",
"k": 2
}
}
}
}
处理稀疏向量
OpenSearch 也支持稀疏向量。有关更多信息,请参阅神经稀疏搜索。