mirror of
https://gitee.com/milvus-io/milvus.git
synced 2024-12-02 03:48:37 +08:00
4de7e1cd03
Signed-off-by: Jael Gu <mengjia.gu@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
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