134 Commits
Author SHA1 Message Date
grootandGitHub 499619033f enhance: Migrate to Conan 2.x (#48165)
new JFrog artifactory for conan 2.x:
https://milvus01.jfrog.io/ui/repos/tree/General/default-conan-local2

issue: https://github.com/milvus-io/milvus/issues/47425

conanfiles pr: https://github.com/milvus-io/conanfiles/pull/92
milvus-common: https://github.com/zilliztech/milvus-common/pull/69
milvus-storage: https://github.com/milvus-io/milvus-storage/pull/445
knowhere: https://github.com/zilliztech/knowhere/pull/1495

Signed-off-by: yhmo <yihua.mo@zilliz.com>
2026-04-16 18:31:42 +08:00
89bd75fab7 fix: apply denylist retry to pack_writer writeLog and binlog import (#48402)
### Summary
Follow-up to #48152 which applied denylist retry to parquet/json/csv
imports but missed two other paths.

- **fix(High)**: `pack_writer.go` `writeLog` now skips retry only for
non-retryable errors (permission denied, bucket not found, invalid
credentials, etc.), matching the denylist strategy in
`retryable_reader.go`.
- **fix(Medium)**: Binlog import's `WithDownloader` callbacks now use
`multiReadWithRetry`, skipping retry only for non-retryable errors.
Previously all transient failures were not retried.
- **fix(Low)**: `IsMilvusError` in `merr/utils.go` switched from
`errors.Cause` (root only) to `errors.As` (full chain traversal).

### Out of Scope
- `pack_writer_v2.go` / `pack_writer_v3.go` — same retry pattern but
different code path (multi-part upload); separate fix.
- `writeDelta` — no retry wrapper; separate concern.

issue: #48153

---------

Signed-off-by: Yihao Dai <yihao.dai@zilliz.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 18:25:27 +08:00
96615cce41 test: add MinHash DIDO function test suite (#47324)
/kind improvement

add testcases and fix a related issue

issue: #47928

---------

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 17:17:30 +08:00
wei liuandGitHub 220c691500 feat: [ExternalTable Part4] Support data mapping for external collections (#47730)
design doc:
https://github.com/milvus-io/milvus-design-docs/blob/main/design_docs/20260105-external_table.md

issue: https://github.com/milvus-io/milvus/issues/45881
## Summary
- Pre-allocate segment IDs in DataCoord, pass to DataNode for direct
final-path manifest writes (eliminating two-phase ID workflow)
- Add FFI bridges for file exploration (`ExploreFiles`, `GetFileInfo`)
and manifest creation (`CreateManifestForSegment`,
`ReadFragmentsFromManifest`)
- Implement fragment-to-segment balancing with configurable target rows
per segment
- Add `ExternalSpec` parser for external data format configuration
- Extend `UpdateExternalCollectionRequest` proto with schema, storage
config, and pre-allocated segment ID fields
- Add E2E test for external collection refresh with data verification

> **Note**: This PR includes Part3 changes (PR #47303). After Part3 is
merged, this PR will be rebased to only contain Part4-specific changes.

## Test plan
- [x] Unit tests for `task_refresh_external_collection.go` (28 tests)
- [x] Unit tests for `task_update.go` and fragment utilities (40 tests)
- [x] Unit tests for FFI bridges (`exttable_test.go`, 9 tests)
- [x] Unit tests for `ExternalSpec` parser
- [x] Unit tests for paramtable config
- [x] Integration test with real Parquet files
- [x] `make lint-fix` passes
- [ ] E2E test with MinIO backend

---------

Signed-off-by: Jiquan Long <jiquan.long@zilliz.com>
Signed-off-by: Wei Liu <wei.liu@zilliz.com>
2026-03-04 18:09:21 +08:00
Li LiuandGitHub 7596fe6a44 doc: add .claude/ to .gitignore (#47871)
## Summary
- Add `.claude/` to `.gitignore` to prevent Claude Code runtime files
(settings.local.json, memory/, projects/) from being accidentally
committed

Signed-off-by: Li Liu <li.liu@zilliz.com>
2026-02-25 22:45:16 +08:00
d786c2a6d5 doc: add CLAUDE.md for AI-assisted development (#47862)
## Summary
- Add `CLAUDE.md` with project-specific instructions for Claude Code
(architecture, testing, code conventions, commit guidelines)
- Remove `claude.md` from `.gitignore` to allow tracking

Signed-off-by: Li Liu <li.liu@zilliz.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 19:25:51 +08:00
9ef7e25778 test: enable search by ids on null vectors tests for #47065 (#47559)
## Summary
- Enable search by ids tests that were commented out pending fix of
#47065
- Fix syntax error in test: `for i in len()` → `for i in range(len())`
- Update test expectations to match the fixed behavior:
  - Search on null vectors now returns empty results instead of error
- Fix assertion to use correct `num_entities_with_not_null_vector` count

## Test plan
- [x] `test_milvus_client_add_nullable_vector_field_search` - verified
passing
- [x] `test_milvus_client_collection_null_vector_field_search` -
verified passing

issue: #47065

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Signed-off-by: Yan Liang <yanliang@zilliz.com>
Signed-off-by: yanliang567 <yanliang.qiao@zilliz.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 14:17:49 +08:00
cai.zhangandGitHub 3425f533db fix: prevent server crash on division/modulo by zero in filter expressions (#47302)
issue: #47285 

Fix critical DoS vulnerability where filter expressions containing
division or modulo by zero operations cause Milvus server to crash with
SIGFPE .
Any client with query access could crash the server remotely using
expressions like `"int_field / {d} == 1", params:{"d": 0}`.

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2026-01-28 11:33:32 +08:00
XiaofanandGitHub 5fb7c4024a feat: Add mgit intelligent Git workflow tool for Milvus development (#46970)
issue: #46969

Signed-off-by: (Checked)

Signed-off-by: xiaofanluan <xiaofan.luan@zilliz.com>
2026-01-12 16:49:32 +08:00
aoiasdandGitHub 322caafe18 feat: support file params in analyzer and set jieba dict file (#45206)
relate: https://github.com/milvus-io/milvus/issues/43687
Support use user provice file by file params, in analyzer params.
Could use local file or remote file resource.
Support use file params in jieba extern dict.

Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>
2025-11-25 11:33:06 +08:00
XiaofanandGitHub a9895bb904 enhance: add robust handle etcd servercrash (#45304)
related to #45303
fix milvus pod may restart when etcd pod start

Signed-off-by: xiaofanluan <xiaofan.luan@zilliz.com>
2025-11-13 10:23:36 +08:00
TianxandGitHub 2c0c5ef41e feat: timestamptz expression & index & timezone (#44080)
issue: https://github.com/milvus-io/milvus/issues/27467

>My plan is as follows.
>- [x] M1 Create collection with timestamptz field
>- [x] M2 Insert timestamptz field data
>- [x] M3 Retrieve timestamptz field data
>- [x] M4 Implement handoff
>- [x] M5 Implement compare operator
>- [x] M6 Implement extract operator
 >- [x] M8 Support database/collection level default timezone
>- [x] M7 Support STL-SORT index for datatype timestamptz

---

The third PR of issue: https://github.com/milvus-io/milvus/issues/27467,
which completes M5, M6, M7, M8 described above.

## M8 Default Timezone

We will be able to use alter_collection() and alter_database() in a
future Python SDK release to modify the default timezone at the
collection or database level.

For insert requests, the timezone will be resolved using the following
order of precedence: String Literal-> Collection Default -> Database
Default.
For retrieval requests, the timezone will be resolved in this order:
Query Parameters -> Collection Default -> Database Default.
In both cases, the final fallback timezone is UTC.


## M5: Comparison Operators

We can now use the following expression format to filter on the
timestamptz field:

- `timestamptz_field [+/- INTERVAL 'interval_string'] {comparison_op}
ISO 'iso_string' `

- The interval_string follows the ISO 8601 duration format, for example:
P1Y2M3DT1H2M3S.

- The iso_string follows the ISO 8601 timestamp format, for example:
2025-01-03T00:00:00+08:00.

- Example expressions: "tsz + INTERVAL 'P0D' != ISO
'2025-01-03T00:00:00+08:00'" or "tsz != ISO
'2025-01-03T00:00:00+08:00'".

## M6: Extract

We will be able to extract sepecific time filed by kwargs in a future
Python SDK release.
The key is `time_fields`, and value should be one or more of "year,
month, day, hour, minute, second, microsecond", seperated by comma or
space. Then the result of each record would be an array of int64.



## M7: Indexing Support

Expressions without interval arithmetic can be accelerated using an
STL-SORT index. However, expressions that include interval arithmetic
cannot be indexed. This is because the result of an interval calculation
depends on the specific timestamp value. For example, adding one month
to a date in February results in a different number of added days than
adding one month to a date in March.

--- 

After this PR, the input / output type of timestamptz would be iso
string. Timestampz would be stored as timestamptz data, which is int64_t
finally.

> for more information, see https://en.wikipedia.org/wiki/ISO_8601

---------

Signed-off-by: xtx <xtianx@smail.nju.edu.cn>
2025-09-23 10:24:12 +08:00
XuanYang-cnandGitHub 09b29a88aa enhance: Remove not inused allocator (#43821)
See also: #44039

---------

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2025-08-27 14:31:50 +08:00
wei liuandGitHub dad43a3894 fix: cost metrics collection logic for replica selection (#41965)
issue: #41621
- Deprecate EnableWorkerSQCostMetrics parameter
- Always collect cost metrics from all search and retrieve results
- Update code with comments explaining the changes rationale

Signed-off-by: Wei Liu <wei.liu@zilliz.com>
2025-05-22 10:20:25 +08:00
Buqian ZhengandGitHub 3de904c7ea feat: add cachinglayer to sealed segment (#41436)
issue: https://github.com/milvus-io/milvus/issues/41435

---------

Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com>
2025-04-28 10:52:40 +08:00
aoiasdandGitHub 11f2fae42e feat: support extend default dict for jieba tokenizer (#41360)
relate: https://github.com/milvus-io/milvus/issues/41213

Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>
2025-04-22 20:34:37 +08:00
MickaandGitHub 5cc104b412 fix: Change CMake variable for switch to knowhere-cuvs (#40105)
issue: https://github.com/milvus-io/milvus/issues/39883

Signed-off-by: Mickael Ide <mide@nvidia.com>
2025-02-27 22:05:58 +08:00
XuanYang-cnandGitHub 7261128df0 enhance: Remove not inuse binlog iterators (#39243)
1. Remove datanode/iterators/binlog_iterator
2. Remove storage/binlog_iterator/MergeIterator

See also: #39242

---------

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2025-01-21 11:15:04 +08:00
XuanYang-cnandGitHub 74b4369c5b fix: Record active collections for l0Policy (#39217)
By recording the active collection lists, The l0 compaction trigger
of view change and idle won't influence each other.

Also this pr replaces the L0View cache with real L0 segments' change.
Save some memory and make L0 compaction triggers more accurate.

See also: #39187

Signed-off-by: yangxuan <xuan.yang@zilliz.com>

---------

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2025-01-16 20:19:02 +08:00
Zhen YeandGitHub bb8d1ab3bf enhance: make new go package to manage proto (#39114)
issue: #39095

---------

Signed-off-by: chyezh <chyezh@outlook.com>
2025-01-10 10:49:01 +08:00
MimoNandGitHub f7c7ac51fc fix: update webui and remove the unnecessary code (#37726)
issue: #36621
* update webui top nav
* remove the unnecessary code in .gitignore file

Signed-off-by: mimo.oyn <ning.ouyang@zilliz.com>
2024-11-16 10:56:33 +08:00
0f0162f70a feat: refactor web ui (#37698)
issue: #36621

* The front-end code of the management interface has been refactored
using React.
* The interaction and display of the front-end interface have been
optimized.

Signed-off-by: mimo.oyn <ning.ouyang@zilliz.com>
Co-authored-by: zilliz <zilliz@zillizdeMacBook-Pro.local>
2024-11-15 17:20:30 +08:00
chyezhandGitHub 39c7e06bc5 enhance: add message and msgstream msgpack adaptor (#34874)
issue: #33285

- make message builder and message conversion type safe
- add adaptor type and function to adapt old msgstream msgpack and
message interface

---------

Signed-off-by: chyezh <chyezh@outlook.com>
2024-07-22 20:59:42 +08:00
jaimeandGitHub 9630974fbb enhance: move rocksmq from internal to pkg module (#33881)
issue: #33956

Signed-off-by: jaime <yun.zhang@zilliz.com>
2024-06-25 21:18:15 +08:00
Bingyi SunandGitHub e8c5e75786 enhance: ignore proto generated files (#28537)
ignore proto generated files
issue: https://github.com/milvus-io/milvus/issues/28566

---------

Signed-off-by: sunby <sunbingyi1992@gmail.com>
2023-11-22 10:20:22 +08:00
cai.zhangandGitHub a362bb1457 Support array datatype (#26369)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2023-09-19 14:23:23 +08:00
f97127ae55 add nats mq wrappers (#24445)
bug fixup, configurable natsmq, add unittest, pass e2e.



move natsmq to pkg project

Signed-off-by: chyezh <ye.zhen@zilliz.com>
Co-authored-by: yiwangdr <yiwangdr@gmail.com>
2023-06-07 10:00:37 +08:00
BennuandGitHub f8c9c527c9 [skip e2e]Add docker-compose for gpu (#22878)
Signed-off-by: Bennu-Li <yunmei.li@zilliz.com>
2023-03-21 17:59:57 +08:00
Enwei JiaoandGitHub 958e94f6f0 Use Conan as c++ package manager (#19920)
Signed-off-by: Enwei Jiao <enwei.jiao@zilliz.com>

Signed-off-by: Enwei Jiao <enwei.jiao@zilliz.com>
2022-11-23 10:39:11 +08:00
xige-16andGitHub 4de1bfe5bc Add cpp data codec (#18538)
Signed-off-by: xige-16 <xi.ge@zilliz.com>
Co-authored-by: zhagnlu lu.zhang@zilliz.com

Signed-off-by: xige-16 <xi.ge@zilliz.com>
2022-09-09 22:12:34 +08:00
XuanYang-cnandGitHub 867ea63bdd Move TopK check inside parseQueryInfo (#18892)
Signed-off-by: yangxuan <xuan.yang@zilliz.com>

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2022-08-30 10:32:56 +08:00
SimFGandGitHub 79523ff8d4 Fix the wrong log tag in the test case (#18103)
Signed-off-by: SimFG <bang.fu@zilliz.com>
2022-07-06 15:38:20 +08:00
95a3830dc6 fix password comparison too slow (#17874) (#17897)
Signed-off-by: kejiang <ke.jiang@zilliz.com>

Co-authored-by: kejiang <ke.jiang@zilliz.com>
2022-06-29 20:02:18 +08:00
Enwei JiaoandGitHub 16c3aedc15 refine complie configuration (#17502)
Signed-off-by: Enwei Jiao <enwei.jiao@zilliz.com>
2022-06-24 21:12:15 +08:00
godchenandGitHub 675e4dcaa2 Remove dablooms (#13881)
Signed-off-by: godchen0212 <qingxiang.chen@zilliz.com>
2021-12-21 18:24:58 +08:00
shaoyueandGitHub 08a2b76963 [skip ci] Add comment in gitinore (#11742)
Signed-off-by: shaoyue.chen <shaoyue.chen@zilliz.com>
2021-11-12 19:27:32 +08:00
edward.zengandGitHub d86e651388 [skip ci] Ignore docker compose volumes (#11169)
Signed-off-by: Edward Zeng <jie.zeng@zilliz.com>
2021-11-03 15:24:11 +08:00
XuanYang-cnandGitHub 30395cb1b1 Add more specific comment in datanode (#9488)
Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2021-10-09 00:09:47 +08:00
XuanYang-cnandGitHub 57117712fe [skip ci]Tidy gitignore (#8971)
Signed-off-by: Yang Xuan <xuan.yang@zilliz.com>
2021-10-01 06:44:41 +08:00
grootandGitHub fb0862e952 [skip ci] Update gitignore (#8738)
Signed-off-by: yhmo <yihua.mo@zilliz.com>
2021-09-28 13:56:03 +08:00
c5b71e8d04 [skip ci] Update gitignore (#8533)
Signed-off-by: Yihua <michaelmo@YihuadeMacBook-Pro.local>

Co-authored-by: Yihua <michaelmo@YihuadeMacBook-Pro.local>
2021-09-26 10:23:57 +08:00
XuanYang-cnandGitHub 4ee8275b88 Fix master compile error (#8333)
Resolves: #8336

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2021-09-22 20:31:54 +08:00
grootandGitHub 77e88144fc Update code coverage script (#8280)
Signed-off-by: yhmo <yihua.mo@zilliz.com>
2021-09-22 16:01:53 +08:00
grootandGitHub f12fa50f6f Prepare for cpp codecoverage (#7900)
Signed-off-by: yhmo <yihua.mo@zilliz.com>
2021-09-14 19:05:52 +08:00
cai.zhangandGitHub e1081b6783 Increase indexcoord component code coverage (#7558)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2021-09-08 14:23:59 +08:00
quicksilverandGitHub d23383b5c2 Add pytest pipeline for pymilvus-orm (#6278)
Signed-off-by: quicksilver <zhifeng.zhang@zilliz.com>
2021-07-03 14:52:28 +08:00
Cai YudongandGitHub a09a3a1905 rename service to coord (#6020)
Signed-off-by: yudong.cai <yudong.cai@zilliz.com>
2021-06-23 16:14:08 +08:00
yukunandGitHub c63524deb9 Add dablooms (#5440)
* Add dablooms cwrapper

Signed-off-by: fishpenguin <kun.yu@zilliz.com>

* Fix undefined reference bug

Signed-off-by: fishpenguin <kun.yu@zilliz.com>

* Add cwrapper_dablooms_build shell script

Signed-off-by: fishpenguin <kun.yu@zilliz.com>
2021-05-28 10:23:30 +08:00
Xiangyu WangandGitHub bfc057d56d Change pymilvus-distributed to pymilvus (#5369)
Signed-off-by: Xiangyu Wang <xiangyu.wang@zilliz.com>
2021-05-24 18:14:57 +08:00
XuanYang-cnandGitHub cebdfb34f7 Enable multiple datanode (#5068)
Now it's able to start multiple datanode, however, they will process the same insert data.
Further changes are needed to truly enable multiple datanode:

While registering, dataservice need to return different insert channels for different datanode.

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
2021-04-28 18:43:48 +08:00