milvus/docs/design_docs/segcore/visitor.md
Jael Gu 4de7e1cd03
[skip ci] Fix typo in segcore/visitor (#11868)
Signed-off-by: Jael Gu <mengjia.gu@zilliz.com>
2021-11-16 13:17:25 +08:00

1.1 KiB
Raw Blame History

Visitor Pattern

Visitor Pattern is used in segcore for parse and execute Execution Plan.

  1. Inside ${core}/src/query/PlanNode.h, contains physical plan for vector search
    1. FloatVectorANNS FloatVector search execution node
    2. BinaryVectorANNS BinaryVector search execution node
  2. ${core}/src/query/Expr.h contains physical plan for scalar expression
    1. TermExpr support operation like col in [1, 2, 3]
    2. RangeExpr support constant compare with data column like a >= 5 1 < b < 2
    3. CompareExpr support compare with different columns, like a < b
    4. LogicalBinaryExpr support and/or
    5. LogicalUnaryExpr support not

Currently, under ${core/query/visitors} directory, there are following visitors:

  1. ShowPlanNodeVisitor prints PlanNode in json
  2. ShowExprVisitor Expr -> json
  3. Verify...Visitor validates ...
  4. ExtractInfo...Visitor extracts info from... including involved_fields and else
  5. ExecExprVisitor generates bitmask according to expression
  6. ExecPlanNodeVistor physical plan executor only supports ANNS node for now