mirror of
https://gitee.com/milvus-io/milvus.git
synced 2024-12-04 04:49:08 +08:00
b24349a8d8
Signed-off-by: yhmo <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 the 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