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

安装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.csdn.net/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"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值