[opt](vector) add score function push down
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownVirtualColumnsIntoOlapScan.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownVirtualColumnsIntoOlapScan.java
index 0d25d8b..47dc710 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownVirtualColumnsIntoOlapScan.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownVirtualColumnsIntoOlapScan.java
@@ -24,6 +24,7 @@
 import org.apache.doris.nereids.trees.expressions.NamedExpression;
 import org.apache.doris.nereids.trees.expressions.functions.scalar.InnerProductApproximate;
 import org.apache.doris.nereids.trees.expressions.functions.scalar.L2DistanceApproximate;
+import org.apache.doris.nereids.trees.expressions.functions.scalar.Score;
 import org.apache.doris.nereids.trees.plans.Plan;
 import org.apache.doris.nereids.trees.plans.logical.LogicalFilter;
 import org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan;
@@ -72,14 +73,14 @@
         Map<Expression, Expression> replaceMap = Maps.newHashMap();
         ImmutableList.Builder<NamedExpression> virtualColumnsBuilder = ImmutableList.builder();
         for (Expression conjunct : filter.getConjuncts()) {
-            Set<Expression> distanceFunctions = conjunct.collect(
-                    e -> e instanceof L2DistanceApproximate || e instanceof InnerProductApproximate);
-            for (Expression distanceFunction : distanceFunctions) {
-                if (replaceMap.containsKey(distanceFunction)) {
+            Set<Expression> needPushDownFunctions = conjunct.collect(e -> e instanceof L2DistanceApproximate
+                            || e instanceof InnerProductApproximate || e instanceof Score);
+            for (Expression needPushDownFunction : needPushDownFunctions) {
+                if (replaceMap.containsKey(needPushDownFunction)) {
                     continue;
                 }
-                Alias alias = new Alias(distanceFunction);
-                replaceMap.put(distanceFunction, alias.toSlot());
+                Alias alias = new Alias(needPushDownFunction);
+                replaceMap.put(needPushDownFunction, alias.toSlot());
                 virtualColumnsBuilder.add(alias);
             }
         }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/InnerProductApproximate.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/InnerProductApproximate.java
index 8c66e39..6c85455 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/InnerProductApproximate.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/InnerProductApproximate.java
@@ -23,7 +23,6 @@
 import org.apache.doris.nereids.trees.expressions.functions.ComputePrecisionForArrayItemAgg;
 import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
-import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.ArrayType;
 import org.apache.doris.nereids.types.DoubleType;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Score.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Score.java
index e80e95a..b414d53 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Score.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Score.java
@@ -64,4 +64,4 @@
     public boolean isDeterministic() {
         return false;
     }
-}
\ No newline at end of file
+}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/BuildIndexOp.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/BuildIndexOp.java
index 2950936..c55f1d9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/BuildIndexOp.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/BuildIndexOp.java
@@ -128,7 +128,7 @@
             }
         }
         if (indexDef.getIndexType() == IndexDef.IndexType.ANN
-            && ((OlapTable) table).getKeysType() != KeysType.DUP_KEYS) {
+                && ((OlapTable) table).getKeysType() != KeysType.DUP_KEYS) {
             throw new AnalysisException("ANN index can only be built on DUP KEYS tables");
         }
         indexDef.validate();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateIndexOp.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateIndexOp.java
index f0b4999..2da6d05 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateIndexOp.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateIndexOp.java
@@ -87,7 +87,7 @@
             tableName.analyze(ctx);
         }
         DatabaseIf<Table> db = Env.getCurrentEnv().getCatalogMgr().getInternalCatalog()
-            .getDb(tableName.getDb()).orElse(null);
+                .getDb(tableName.getDb()).orElse(null);
         if (db == null) {
             throw new AnalysisException("Database[" + tableName.getDb() + "] is not exist");
         }
@@ -100,7 +100,7 @@
             throw new AnalysisException("Only olap table support create index");
         }
         if (indexDef.getIndexType() == IndexDef.IndexType.ANN
-            && ((OlapTable) table).getKeysType() != KeysType.DUP_KEYS) {
+                && ((OlapTable) table).getKeysType() != KeysType.DUP_KEYS) {
             throw new AnalysisException("ANN index can only be built on DUP KEYS tables");
         }
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java b/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java
index 843df2f..8f5c031 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java
@@ -1567,7 +1567,7 @@
                 columnsDesc.add(tColumn);
             }
         }
-        
+
         // Add virtual column to ColumnsDesc so that backend could
         // get correct table_schema.
         for (SlotDescriptor slot : desc.getSlots()) {
@@ -1912,15 +1912,15 @@
         computeNumNodes();
         computeStatsForNereids();
         // Update SlotDescriptor before construction of thrift message.
-        int virtual_column_idx = 0;
+        int virtualColumnIdx = 0;
         for (SlotDescriptor slot : desc.getSlots()) {
             if (slot.getVirtualColumn() != null) {
-                virtual_column_idx++;
+                virtualColumnIdx++;
                 Column column = new Column();
                 // Set the name of virtual column to be unique.
-                column.setName("__DORIS_VIRTUAL_COL__" + virtual_column_idx);
+                column.setName("__DORIS_VIRTUAL_COL__" + virtualColumnIdx);
                 // Just make sure the unique id is not conflict with other columns.
-                column.setUniqueId(Integer.MAX_VALUE - virtual_column_idx);
+                column.setUniqueId(Integer.MAX_VALUE - virtualColumnIdx);
                 column.setType(slot.getType());
                 column.setIsAllowNull(slot.getIsNullable());
                 slot.setColumn(column);