milvus数据库-查询

与向量相似性搜索不同,向量查询通过基于布尔表达式的标量过滤来检索向量。Milvus支持许多标量字段中的数据类型和各种布尔表达式。布尔表达式过滤标量字段或主键字段,并检索与过滤器匹配的所有结果。

一、单次查询

1.加载集合

2.执行查询

python 复制代码
# 使用集合对象的 query 方法来执行查询操作
res = collection.query(
    expr="book_id in [2,4,6,8]",  # 查询表达式,筛选满足条件的文档
    offset=0,  # 结果的偏移量,从结果中的第一个文档开始返回
    limit=10,  # 返回结果的最大数量
    output_fields=["book_id", "book_intro"]  # 指定要从查询结果中检索的字段
)

3.检查输出

python 复制代码
sorted_res = sorted(res, key=lambda k: k['book_id'])
sorted_res

4.统计实体

在执行查询时,将输出字段设置为count(*),就会返回检索到的实体数量。此时禁用limit

python 复制代码
res = collection.query(
  # filter entities whose ID is in the specified list
  expr="book_id in [2,4,6,8]", 
  output_fields = ["count(*)"],
)

print(res)
print(res[0])

二、查询时使用迭代器

1.使用迭代器查询

python 复制代码
expr = "600 <= num_pages <= 700"

output_fields=[bookID, authors]

limit = 5

query_iterator = collection.query_iterator(expr, output_fields, limit)

while True:
    # turn to the next page
    res = query_iterator.next()
    if len(res) == 0:
        print("query iteration finished, close")
        # close the iterator
        query_iterator.close()
        break
    for i in range(len(res)):
        print(res[i])

2.使用迭代器搜索

python 复制代码
vectors_to_search = rng.random((SEARCH_NQ, DIM))

search_params = {
    "metric_type": "L2",
    "params": {"nprobe": 10, "radius": 1.0},
}

search_iterator = collection.search_iterator(
    vectors_to_search,
    search_params,
    limit=5,
    output_fields=[bookID, authors]
)
                                             
while True:
    # turn to the next page
    res = search_iterator.next()
    if len(res[0]) == 0:
        print("search iteration finished, close")
        # close the iterator
        search_iterator.close()
        break
    for i in range(len(res[0])):
        print(res[0][i])
相关推荐
OceanRoy3 小时前
数据库表的设计
数据库·内连接·外连接·er图·表的约束·三大范式·多表连接
Pniubi3 小时前
怎么排查慢SQL,怎么解决?
java·数据库·sql
薛之谦_4 小时前
Java 全栈知识体系:从 IDEA 高效开发到 JVM、并发与 Stream 实战
java·jvm·intellij-idea
Decay__7 小时前
VMware 安装 SQL Server 双节点 AlwaysOn 可用性组教程 —— WSFC、AG 与侦听器完整部署(系列核心篇)
运维·数据库·sql·mysql·架构
茶栀(*´I`*)8 小时前
SQL 性能分析:从慢查询日志到执行计划的完整定位方法
数据库·sql
文丑颜不良啊8 小时前
LeetCode2761~2780题目解析
java·leetcode
艺杯羹9 小时前
1Panel 装好后 ufw 仍是 inactive:一次服务器安全盲区复盘
服务器·数据库·安全·网络安全·系统架构·实战·1panel
IT枫斗者枫哥9 小时前
子线程断言失败,JUnit 为什么还显示通过?
java·后端
code2cat10 小时前
【随笔】MCP工具重试:任务已经创建,响应丢了怎么办
数据库·mcp
考虑考虑11 小时前
JDK27中的Set.ofLazy
java·后端·java ee