Milvus vector database client for MoonBit
Dependencies
moon add SundayT1998/milvus-client///|
async fn quickstart() -> Unit raise @client.ClientError {
// 1. 连上 Milvus
let cfg = @transport.Config::new("127.0.0.1:19530")
.with_token("root:Milvus")
.with_db_name("default")
.with_timeout_millis(5000)
let (client, channel) = @native.connect(cfg)
// 2. 建集合
client.create_collection(
@client.simple_create_collection_option("demo", dim=4),
)
// 3. 建索引
client.create_index(
@client.new_create_index_option(
"demo",
"vector",
@index.new_flat_index(@index.MetricType::L2),
),
)
// 4. 加载,等到数据面就绪
client.load_collection(@client.new_load_collection_option("demo")).wait()
// 5. 写入三行
let _ = client.insert(
@client.new_write_option("demo", [
@client.WriteColumn::new("id", @column.ColumnValue::Int64([1L, 2L, 3L])),
@client.WriteColumn::new(
"vector",
@column.ColumnValue::FloatVector(4, [
[0.1, 0.2, 0.3, 0.4],
[0.5, 0.6, 0.7, 0.8],
[0.9, 1.0, 1.1, 1.2],
]),
),
]),
)
// 6. 检索
let hits = client.search(
@client.new_search_option("demo", limit=3, [
@column.ColumnValue::FloatVector(4, [[0.1, 0.2, 0.3, 0.4]]),
]).with_anns_field("vector"),
)
ignore(hits)
// 7. 按表达式查询
let rows = client.query(
@client.new_query_option("demo")
.with_filter("id >= 1")
.with_output_fields(["id", "vector"])
.with_limit(10),
)
let ids : @column.Column = rows.column("id") catch { _ => return }
// 8. 翻页
let iterator = client.search_iterator(
@client.new_search_iterator_option("demo", 1000, [
@column.ColumnValue::FloatVector(4, [[0.1, 0.2, 0.3, 0.4]]),
])
.with_anns_field("vector")
.with_batch_size(500),
) catch {
_ => return
}
while true {
let page = iterator.next() catch {
err => if err.is_end_of_iterator() { break } else { return }
}
ignore(page.hits.length())
}
let _ = iterator.close()
// 9. 清理
client.flush(@client.new_flush_option("demo")).wait()
client.release_collection(@client.new_release_collection_option("demo"))
client.drop_collection(@client.new_drop_collection_option("demo"))
channel.close()
}| 文档 | 内容 |
|---|---|
| README.mbt.md | 本文件 |
| docs/ROADMAP.md | 已规划未实现的能力 |
| docs/DEVELOPMENT.md | 开发流程、集成测试、上游同步、发布、需要注意的取舍 |
| AGENTS.md | 协作约定与各包的实现约束 |
| proto/REPORT.md | protoc-gen-mbt 对 Milvus proto 的支持度探针报告 |
| proto/upstream/PROVENANCE.md | .proto 快照的上游来源与锚定 commit |
| LICENSE | Apache-2.0 许可证全文 |
| .githooks/README.md | pre-commit 钩子的启用方式 |
| 项 | 值 |
|---|---|
| 上游仓库 | milvus-io/milvus,client/ 目录 |
| 基线 commit | 1bcc8cb1(2026-09-30) |
| 上游许可 | Apache-2.0 |
| 上游版权 | Copyright (c) LF AI & Data Foundation |
| 本项目许可 | Apache-2.0(见 LICENSE) |
Install
Download zipMilvus vector database client for MoonBit
Dependencies