Commit Graph

48 Commits (2.5)

Author SHA1 Message Date
Spade A a3c5e2e3c3
feat: support phrase match query for 2.5 (#43716)
pr: https://github.com/milvus-io/milvus/pull/38869
issue: https://github.com/milvus-io/milvus/issues/38930

---------

Signed-off-by: SpadeA <tangchenjie1210@gmail.com>
2025-08-08 11:35:41 +08:00
cai.zhang b900e4a63a
fix: [2.5] Handle error for invalid function params and prevent panic (#43190)
issue: #43188 
master pr: #43189

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2025-07-09 11:40:47 +08:00
zhagnlu c88f1be985
fix:fix wrong use return error for parse unsupported arith (#42729) (#42890)
pr: #42729

Signed-off-by: luzhang <luzhang@zilliz.com>
Co-authored-by: luzhang <luzhang@zilliz.com>
2025-06-23 20:36:46 +08:00
cai.zhang 4d6c57affe
fix: [2.5] Add precheck for unsupport datatype cast (#42678)
issue: #42527 
master pr: #42677

---------

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2025-06-13 18:18:37 +08:00
SimFG 18eb627533
fix: [2.5] Update logging context and upgrade dependencies (#41319)
- issue: #41291
- pr: #41318

---------

Signed-off-by: SimFG <bang.fu@zilliz.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-24 23:50:40 +08:00
cai.zhang 23c86af730
fix: [2.5] Revert add a sign (positive or negative) to constants (#41192)
issue: #41174
master pr: #41191

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2025-04-09 20:06:27 +08:00
cai.zhang 64255e229a
fix: [2.5] Correctly parse the minimum value of int64 (#41010)
issue: #40729 
master pr: #41009 

Current approach to parse negative numbers is first parse the numeric
part and then multiply the result by -1(mainly to distinguish the
precedence of the negative sign and the subtraction operator). However,
for the minimum value of int64(`-9223372036854775808`), the value
`9223372036854775808` already exceeds the representable range of int64.
As a result, parsing error occurs.
Therefore, use a specific rule to match `-9223372036854775808`.

---------

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2025-04-07 23:06:27 +08:00
Bingyi Sun 9108cee958
feat: add json null/exists expression (#41002)
issue: #35528 
pr: https://github.com/milvus-io/milvus/pull/41004

---------

Signed-off-by: sunby <sunbingyi1992@gmail.com>
2025-03-31 21:52:23 +08:00
congqixia 709594f158
enhance: [2.5] Use v2 package name for pkg module (#40117)
Cherry-pick from master
pr: #39990
Related to #39095

https://go.dev/doc/modules/version-numbers

Update pkg version according to golang dep version convention

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2025-02-23 00:46:01 +08:00
smellthemoon 1602390734
enhance: support null expr(#38772) (#38931)
pr: #38772 
issue: #31728

---------

Signed-off-by: lixinguo <xinguo.li@zilliz.com>
Co-authored-by: lixinguo <xinguo.li@zilliz.com>
2025-01-16 10:55:07 +08:00
Zhen Ye 95809ca767
enhance: make new go package to manage proto (#39128)
issue: #39095
pr: #39114

---------

Signed-off-by: chyezh <chyezh@outlook.com>
2025-01-10 10:53:01 +08:00
cai.zhang bb3d993da5
fix: [2.5] Decode unicode for json key in expression (#38653)
issue: #38626 

master pr: #38651

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2024-12-23 13:58:49 +08:00
cai.zhang 0449c74d44
fix: Fix the bug where some expressions do not correctly parse the value (#37341)
issue: #37274

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2024-11-02 13:24:22 +08:00
zhenshan.cao 63843dce33
fix: Fix conan gdal building problem (#37338)
issue:https://github.com/milvus-io/milvus/issues/27576

Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com>
2024-10-31 21:04:16 +08:00
Hao Tan 67c4340565
feat: Geospatial Data Type and GIS Function Support for milvus server (#35990)
issue:https://github.com/milvus-io/milvus/issues/27576

# Main Goals
1. Create and describe collections with geospatial fields, enabling both
client and server to recognize and process geo fields.
2. Insert geospatial data as payload values in the insert binlog, and
print the values for verification.
3. Load segments containing geospatial data into memory.
4. Ensure query outputs can display geospatial data.
5. Support filtering on GIS functions for geospatial columns.

# Solution
1. **Add Type**: Modify the Milvus core by adding a Geospatial type in
both the C++ and Go code layers, defining the Geospatial data structure
and the corresponding interfaces.
2. **Dependency Libraries**: Introduce necessary geospatial data
processing libraries. In the C++ source code, use Conan package
management to include the GDAL library. In the Go source code, add the
go-geom library to the go.mod file.
3. **Protocol Interface**: Revise the Milvus protocol to provide
mechanisms for Geospatial message serialization and deserialization.
4. **Data Pipeline**: Facilitate interaction between the client and
proxy using the WKT format for geospatial data. The proxy will convert
all data into WKB format for downstream processing, providing column
data interfaces, segment encapsulation, segment loading, payload
writing, and cache block management.
5. **Query Operators**: Implement simple display and support for filter
queries. Initially, focus on filtering based on spatial relationships
for a single column of geospatial literal values, providing parsing and
execution for query expressions.
6. **Client Modification**: Enable the client to handle user input for
geospatial data and facilitate end-to-end testing.Check the modification
in pymilvus.

---------

Signed-off-by: tasty-gumi <1021989072@qq.com>
2024-10-31 20:58:20 +08:00
cai.zhang 2ef6cbbf59
feat: The expression supports filling elements through templates (#37033)
issue: #36672

The expression supports filling elements through templates, which helps
to reduce the overhead of parsing the elements.

---------

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2024-10-31 14:20:22 +08:00
Yinzuo Jiang 3628593d20
feat: Implement custom function module in milvus expr (#36560)
OSPP 2024 project:
https://summer-ospp.ac.cn/org/prodetail/247410235?list=org&navpage=org

Solutions:

- parser (planparserv2)
    - add CallExpr in planparserv2/Plan.g4
    - update parser_visitor and show_visitor
- grpc protobuf
    - add CallExpr in plan.proto
- execution (`core/src/exec`)
- add `CallExpr` `ValueExpr` and `ColumnExpr` (both logical and
physical) for function call and function parameters
- function factory (`core/src/exec/expression/function`)
    - create a global hashmap when starting milvus (see server.go)
- the global hashmap stores function signatures and their function
pointers, the CallExpr in execution engine can get the function pointer
by function signature.
- custom functions
    - empty(string)
    - starts_with(string, string)
- add cpp/go unittests and E2E tests

closes: #36559

Signed-off-by: Yinzuo Jiang <jiangyinzuo@foxmail.com>
2024-10-25 15:25:30 +08:00
cai.zhang d1060c0e05
enhance: Update antlr version and refine parsing not in (#36745)
issue: #36672

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2024-10-11 14:03:21 +08:00
cai.zhang fc8b5ab791
enhance: Convert unincode to ascii to improving expression parsing efficiency (#36675)
issue: #36672

---------

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2024-10-09 09:23:24 +08:00
Jiquan Long 89bf226f0b
feat: support keyword text match (#35923)
fix: #35922

---------

Signed-off-by: longjiquan <jiquan.long@zilliz.com>
2024-09-10 15:11:08 +08:00
Jiquan Long 976ceb4a46
fix: comparision operations between incompatible operands (#35264)
fix: #34139

Signed-off-by: longjiquan <jiquan.long@zilliz.com>
2024-08-07 10:24:27 +08:00
congqixia 3333160b8d
enhance: Fix lint issues from recent PRs (#34482)
See also #34483
Some lint issues are introduced due to lack of static check run. This PR
fixes these problems.

---------

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2024-07-09 10:06:24 +08:00
Chun Han c3264ca3e3
feat: support segment pruner (#31003)
related: #30376
2024-03-22 13:57:06 +08:00
cai.zhang de2c95d00c
enhance: Constraint dynamic field as key-value format (#31183)
issue: #31051

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2024-03-12 12:45:03 +08:00
cai.zhang 6a83f16871
feat: Support for multiple forms of JSON (#31052)
issue: #31051

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
2024-03-11 19:55:02 +08:00
SimFG 26f06dd732
Format the code (#27275)
Signed-off-by: SimFG <bang.fu@zilliz.com>
2023-09-21 09:45:27 +08:00
cai.zhang a362bb1457
Support array datatype (#26369)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2023-09-19 14:23:23 +08:00
cai.zhang 82b0e39abe
Fix bug for concurrent parsing expr with strings (#26721)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2023-08-31 17:39:02 +08:00
Jiquan Long d9aa8ff545
Fix logical expression (#26513)
Signed-off-by: longjiquan <jiquan.long@zilliz.com>
2023-08-22 15:44:22 +08:00
Jiquan Long 2a517d2da1
Fix expression incompatible between parser and executor (#26493)
Signed-off-by: longjiquan <jiquan.long@zilliz.com>
2023-08-21 19:36:20 +08:00
cai.zhang 94846995bf
Refine error message for field not exist (#26330)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2023-08-21 11:52:20 +08:00
cai.zhang 90b12d04b4
Don't panic when receive unsupported expr (#26414)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2023-08-17 15:12:17 +08:00
cai.zhang a0198ce8ae
Support json contains feature (#25384)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2023-08-11 17:09:30 +08:00
cai.zhang 3d78a452d7
Support escape string (#24848)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2023-07-25 10:29:01 +08:00
cai.zhang 853b7d0054
Support json contains for json field (#24720)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2023-06-09 16:10:36 +08:00
congqixia 41af0a98fa
Use go-api/v2 for milvus-proto (#24770)
Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
2023-06-09 01:28:37 +08:00
xige-16 732fe54775
Support partition Key (#24047)
Signed-off-by: xige-16 <xi.ge@zilliz.com>
2023-06-06 10:24:34 +08:00
cai.zhang dc02c5b064
Fix bug for supporting single quotes (#24464)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2023-05-29 09:55:27 +08:00
cai.zhang 6804bda8f5
Support single quotes with string (#24386)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2023-05-25 15:47:26 +08:00
cai.zhang ccd685013a
Json key must be enclosed in double quotes (#24113)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2023-05-16 16:19:22 +08:00
cai.zhang 9715a850fa
Support expr with json field (#23804)
Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
2023-05-10 10:19:19 +08:00
jaime c9d0c157ec
Move some modules from internal to public package (#22572)
Signed-off-by: jaime <yun.zhang@zilliz.com>
2023-04-06 19:14:32 +08:00
SimFG a55f739608
Separate public proto files (#19782)
Signed-off-by: SimFG <bang.fu@zilliz.com>

Signed-off-by: SimFG <bang.fu@zilliz.com>
2022-10-16 20:49:27 +08:00
SimFG d7f38a803d
Separate some proto files (#19218)
Signed-off-by: SimFG <bang.fu@zilliz.com>

Signed-off-by: SimFG <bang.fu@zilliz.com>
2022-09-16 16:56:49 +08:00
Jiquan Long b4f797506d
Fix err msg of invalid expression (#17296)
Signed-off-by: longjiquan <jiquan.long@zilliz.com>
2022-06-01 10:00:07 +08:00
Jiquan Long 276ba69819
Replace plan parser with antlr (#17090)
Signed-off-by: dragondriver <jiquan.long@zilliz.com>
2022-05-19 17:15:57 +08:00
Jiquan Long ac389f3e93
Limit and translate pattern match operations (#16818)
Signed-off-by: dragondriver <jiquan.long@zilliz.com>
2022-05-07 16:31:52 +08:00
Jiquan Long 98ceb162aa
Support antlr as plan parser (#16696)
Signed-off-by: dragondriver <jiquan.long@zilliz.com>

Co-authored-by: xaxys <tpnnghd@163.com>

Co-authored-by: xaxys <tpnnghd@163.com>
2022-05-06 17:43:51 +08:00