快速入门
更新时间:2024-05-14
用户可以参考本文档,快速使用BES向量数据库的hnsw算法进行数据写入和向量检索。
前提条件
已创建百度智能云账号。创建账号参考百度云账号注册流程。
创建集群
创建BES集群,请参考文档:创建集群。
如需规划集群的资源规格及数量,请参考文档:资源规划。
访问集群
参考文档:访问Elasticsearch服务。
快速体验
1、创建一个hnsw的索引,详细参数含义可以参考文档:创建索引。
PUT my_index
{
"settings": {
"index": {
"knn": true
}
},
"mappings": {
"properties": {
"image-vector": {
"type": "bpack_vector",
"dims": 4,
"index_type": "hnsw",
"space_type": "l2",
"parameters": {
"ef_construction": 200,
"m": 32
}
},
"id": {
"type": "integer"
},
"title": {
"type": "keyword"
}
}
}
}
2、写入向量数据
POST my_index/_bulk
{"index":{}}
{"id":1, "title":"t1", "image-vector":[3.5,4.5,6.5,6.5]}
{"index":{}}
{"id":2, "title":"t2", "image-vector":[3.5,4.5,6.5,6.5]}
{"index":{}}
{"id":3, "title":"t1", "image-vector":[5.5,6.5,6.5,6.5]}
{"index":{}}
{"id":4, "title":"t2", "image-vector":[3.5,6.5,6.5,6.5]}
{"index":{}}
{"id":5, "title":"t1", "image-vector":[5.5,2.5,4.5,4.5]}
3、索引构建完成后,即可检索数据
GET my_index/_search
{
"size": 2,
"query": {
"knn": {
"image-vector": {
"vector": [3, 4, 5, 6],
"k": 2,
"ef": 100,
"filter": { // 基于标量数据进行过滤,不需要的话可以删掉filter
"term": {
"title": "t1"
}
}
}
}
}
}