mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-07 01:28:27 +08:00
1.1 KiB
1.1 KiB
Visitor Pattern
Visitor Pattern is used in segcore for parse and execute Execution Plan.
- Inside
${core}/src/query/PlanNode.h, contains physical plan for vector search:FloatVectorANNSFloatVector search execution nodeBinaryVectorANNSBinaryVector search execution node
${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 ${core/query/visitors} directory, there are the following visitors:
ShowPlanNodeVisitorprints PlanNode in jsonShowExprVisitorExpr -> jsonVerify...Visitorvalidates ...ExtractInfo...Visitorextracts info from..., including involved_fields and elseExecExprVisitorgenerates bitmask according to expressionExecPlanNodeVistorphysical plan executor only supports ANNS node for now