向量检索milvus之一:以图搜图

本文详细介绍了如何安装和使用Milvus进行向量检索,特别是针对以图搜图的场景。首先,概述了Milvus作为向量检索平台的作用,接着讲解了安装、启动过程中的注意事项。接着,通过创建索引实现高效搜索,并展示了如何利用pic-search-webserver将图片向量化以及pic-search-webclient进行页面交互。最后,对整个实验过程进行了总结,并提供了相关参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装milvus

关于milvus

milvus作为一个集成的开源平台,目标就是向量检索的集成平台。类似于elasticsearch集成了搜索。细节大家可以直接看官网。https://www.milvus.io/cn/docs/v0.11.0/overview.md

安装

说起来其实挺容易,方法也比较清晰。不过下载比较慢。

>> docker pull milvusdb/milvus:0.11.0-cpu-d101620-4c44c0
0.11.0-cpu-d101620-4c44c0: Pulling from milvusdb/milvus
75f829a71a1c: Pull complete
e654e509dcd3: Pull complete
482d74c614ad: Pull complete
85d20808a7e5: Pull complete
2f8820d4255e: Pull complete
Digest: sha256:6a5dc00b26dc18be5e5bfddc8cfb36370188e4c951e62ffafa30fbe3f4b1ad60
Status: Downloaded newer image for milvusdb/milvus:0.11.0-cpu-d101620-4c44c0
docker.io/milvusdb/milvus:0.11.0-cpu-d101620-4c44c0

启动

docker run -d --name milvus_cpu_0.11.0 \
	-p 19530:19530 \
	-p 19121:19121 \
	-v /home/$yourname/milvus/db:/var/lib/milvus/db \
	-v /home/$yourname/milvus/conf:/var/lib/milvus/conf \
	-v /home/$yourname/milvus/logs:/var/lib/milvus/logs \
	-v /home/$yourname/milvus/wal:/var/lib/milvus/wal \
	milvusdb/milvus:0.11.0-cpu-d101620-4c44c0```

这个地方有个小细节,就是不要-d启动,观察错误,等没问题之后再用-d启动,这样可以观察细节。

另外,milvus.yaml如果下载不了就翻墙吧。 我还是放一份在这里吧。https://download.youkuaiyun.com/download/iterate7/13081889

安装对应的admin观察界面

>> docker pull milvusdb/milvus-em:v0.5.0
>> docker run -d -p 3000:80 -e API_URL=http://192.168.13.218:3000 milvusdb/milvus-em:v0.5.0

然后就可以在界面观察milvus了。
在这里插入图片描述

实验向量搜索

主要是增删改查。 直接看代码更直接。

import numpy as np
import random
from milvus import Milvus
from milvus import Status

_HOST = '192.168.xx.xx'
_PORT = 19530

# Connect to Milvus Server
milvus = Milvus(_HOST, _PORT)

# Close client instance
# milvus.close()

# Returns the status of the Milvus server.
server_status = milvus.server_status(timeout=4)
print(server_status)


# Vector parameters
_DIM = 8  # dimension of vector

_INDEX_FILE_SIZE = 32  # max file size of stored index

# the demo name.
collection_name = 'example_collection_'
partition_tag = 'demo_tag_'
segment_name= ''

# 10 vectors with 8 dimension, per element is float32 type, vectors should be a 2-D array
vectors = [[random.random() for _ in range(_DIM)] for _ in range(10)]
ids = [i for i in range(10)]

print(vectors)

# Returns the version of the client.
client_version= milvus.client_version()
print(client_version)

# Returns the version of the Milvus server.
server_version = milvus.server_version(timeout=10)
print(server_version)

print("has collection:",milvus.has_collection(collection_name=collection_name, timeout=10))


from milvus import DataType
# Information needed to create a collection.Defult index_file_size=1024 and metric_type=MetricType.L2
collection_param = {
   
    "fields": [
        #  Milvus doesn't support string type now, but we are considering supporting it soon.
        #  {"name": "title", "type": DataType.STRING},
        {
   "name": "duration", "type": DataType.INT32, "params": {
   "unit": "minute"}},
        {
   "name"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值