使用Milvus搭建以图搜图服务
介绍
网上相关的实现比较少,最多也只能查到Milvus,但不知道怎么使用。最后通过ChatGPT了解到了相关的使用方法,协助实现了以图搜图。
安装Milvus
先下载官网提供的milvus docker-compose文件
wget https://github.com/milvus-io/milvus/releases/download/v2.2.4/milvus-standalone-docker-compose.yml -O docker-compose.yml
修改yml文件配置,参考如下:
version: '3.5'
services:
etcd:
container_name: milvus-etcd
image: quay.io/coreos/etcd:v3.5.5
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_SNAPSHOT_COUNT=50000
volumes:
- /z/software/etcd:/etcd
command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
minio:
container_name: milvus-minio
image: minio/minio:RELEASE.2022-03-17T06-34-49Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
#ports:
#- "9001:9001"
#- "9000:9000"
volumes:
- /z/software/minio:/minio_data
command: minio server /minio_data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
standalone:
container_name: milvus-standalone
image: milvusdb/milvus:v2.2.4
command: ["milvus", "run", "standalone"]
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
LOG_LEVEL: info
volumes:
- /z/software/milvus:/var/lib/milvus
ports:
- "19530:19530"
depends_on:
- "etcd"
- "minio"
networks:
default:
name: milvus-network
PS1:除了Milvus服务外,没有开放minio和etcd的端口,服务也可以互相访问
PS2:milvus默认端口为19530,可按需修改,用于服务调用,外网访问需要开放该端口
启动容器
docker-compose -f <docker-compose.yml位置> up -d
查看日志
docker logs -f --tail=200 milvus-standalone
至此,服务已经搭建完成,以下为Java实现
Java调用Milvus插入、查询
引入Maven依赖
<dependency>