mirror of
https://gitee.com/milvus-io/milvus.git
synced 2024-12-05 13:28:49 +08:00
0ab1f597ae
Signed-off-by: xiaofan-luan <xiaofan.luan@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 searchFloatVectorANNS
FloatVector search execution nodeBinaryVectorANNS
BinaryVector search execution node
${core}/src/query/Expr.h
contains physical plan for scalar expressionTermExpr
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
print PlanNode in jsonShowExprVisitor
Expr -> jsonVerify...Visitor
validate ...ExtractInfo...Visitor
extract info from... ,including involved_fields and elseExecExprVisitor
Generate bitmask according to expressionExecPlanNodeVistor
physical plan executor, for now only support ANNS node.