milvus 2.0 官方安装教程:
https://milvus.io/cn/docs/v2.0.0/install_cluster-docker.md
- 查看远程镜像版本:
sudo docker search milvus
- 拉取 milvus 镜像:
sudo docker pull milvusdb/milvus
- 安装 pymilvus:
sudo python -m pip install pymilvus==2.0.0rc9
- 下载配置文件:
sudo wget https://github.com/milvus-io/milvus/releases/download/v2.0.0-pre-ga/milvus-standalone-docker-compose.yml -O docker-compose.yml
- 安装 milvus:
sudo docker-compose up -d
sudo: docker-compose: command not found 的解决办法 参考:
https://stackoverflow.com/questions/38775954/sudo-docker-compose-command-not-found
https://docs.docker.com/compose/install/
报错:ERROR: failed to parse pool request for address space “LocalDefault” pool “” subpool “”: could not find an available predefined network 参考:
https://stackoverflow.com/questions/43720339/docker-error-could-not-find-an-available-non-overlapping-ipv4-address-pool-am
修改 docker-compose.yml 中的代码,在末尾增加下文:
default:
driver: bridge
ipam:
config:
- subnet: 172.16.57.0/24
搜索速度极慢解决办法(安装 2.0.10 版本的):sudo pip install --extra-index-url https://test.pypi.org/simple/ pymilvus==2.0.0rc10.dev12
参考:https://github.com/milvus-io/milvus/issues/15258
问题解决:client 在搜索最近邻时,如果使用 IP(內积),L2(欧氏距离)时,server 的 index 类型需要是一样的
# client 在搜索最近邻时,如果使用 IP(內积),L2(欧氏距离)时,server 的 index 类型需要是一样的
# server
# 创建索引
index = {
"index_type": "IVF_FLAT",
"metric_type": "L2", # L2 or IP
"params": {"nlist": 1024},
}
my_mil.create_index("item_embedding", index)
# client
# 搜索参数
search_params = {
"metric_type": "L2", # L2 or IP
"params": {"nprobe": 12},
}
# 1. search 方法,查找与候选向量最相近的向量
result = my_mil.search(mil_name,
value_to_search,
"item_embedding",
search_params,
limit=100,
partition_names=['hash_10'],
output_fields=["item_cate"])