mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-07 01:28:27 +08:00
Remove redundant `VectorPlanNode` subclasses and simplify the visitor pattern by consolidating to a single `VectorPlanNode`. The previous design used distinct `VectorPlanNode` subclasses and a templated `VectorVisitorImpl` for type-directed dispatch. However, the template parameter was not functionally used to implement different logic for each vector type, making the subclasses redundant for their intended purpose. This PR is created by Cursor Agent and manually moved from https://github.com/zhengbuqian/milvus/pull/14. Signed-off-by: zhengbuqian <zhengbuqian@gmail.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: buqian.zheng <buqian.zheng@zilliz.com>
795 B
795 B
Visitor Pattern
Visitor Pattern is used in segcore for parse and execute Execution Plan.
- Inside
${internal/core}/src/query/PlanNode.h, contains physical plan for vector search:VectorPlanNodevector search execution node
${internal/core}/src/query/Expr.hcontains physical plan for scalar expression:TermExprsupport operation likecol in [1, 2, 3]RangeExprsupport constant compare with data column likea >= 51 < b < 2CompareExprsupport compare with different columns, likea < bLogicalBinaryExprsupport and/orLogicalUnaryExprsupport not
Currently, under ${internal/core/src/query} directory, there are the following visitors:
ExecPlanNodeVistorphysical plan executor only supports ANNS node for now