mirror of
https://gitee.com/milvus-io/milvus.git
synced 2024-12-05 05:18:52 +08:00
c3825052b1
Signed-off-by: groot <yihua.mo@zilliz.com>
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:FloatVectorANNS
FloatVector search execution nodeBinaryVectorANNS
BinaryVector search execution node
${core}/src/query/Expr.h
contains physical plan for scalar expression:TermExpr
support operation likecol in [1, 2, 3]
RangeExpr
support constant compare with data column likea >= 5
1 < b < 2
CompareExpr
support compare with different columns, likea < b
LogicalBinaryExpr
support and/orLogicalUnaryExpr
support not
Currently, under ${core/query/visitors}
directory, there are following visitors:
ShowPlanNodeVisitor
prints PlanNode in jsonShowExprVisitor
Expr -> jsonVerify...Visitor
validates ...ExtractInfo...Visitor
extracts info from..., including involved_fields and elseExecExprVisitor
generates bitmask according to expressionExecPlanNodeVistor
physical plan executor only supports ANNS node for now