Quellcode durchsuchen

增加 泛化元素、泛化点类型

wangyunpeng vor 4 Tagen
Ursprung
Commit
ef813f3cbf

+ 39 - 12
core/src/main/java/com/tzld/videoVector/job/ChannelDemandMatchJob.java

@@ -1,6 +1,8 @@
 package com.tzld.videoVector.job;
 
+import com.alibaba.fastjson.JSON;
 import com.aliyun.odps.data.Record;
+import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
 import com.google.common.collect.Lists;
 import com.tzld.videoVector.dao.mapper.pgVector.ChannelDemandMatchConfigMapper;
 import com.tzld.videoVector.dao.mapper.pgVector.ChannelDemandMatchResultMapper;
@@ -12,21 +14,18 @@ import com.tzld.videoVector.model.po.pgVector.ChannelDemandMatchResult;
 import com.tzld.videoVector.model.po.pgVector.ChannelDemandMatchResultExample;
 import com.tzld.videoVector.model.vo.RecallVideoScoreVO;
 import com.tzld.videoVector.service.VideoSearchService;
+import com.tzld.videoVector.util.Md5Util;
 import com.tzld.videoVector.util.OdpsUtil;
 import com.tzld.videoVector.util.RedisUtils;
 import com.tzld.videoVector.util.VectorUtils;
-import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
 import com.xxl.job.core.biz.model.ReturnT;
 import com.xxl.job.core.handler.annotation.XxlJob;
-import com.alibaba.fastjson.JSON;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
-import com.tzld.videoVector.util.Md5Util;
-
 import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 import java.time.LocalDate;
@@ -165,12 +164,12 @@ public class ChannelDemandMatchJob {
     /**
      * 点类型 → 向量配置编码映射
      */
-    private static final Map<String, String> POINT_TYPE_CONFIG_CODE_MAP = new HashMap<>();
+    private static final Map<String, List<String>> POINT_TYPE_CONFIG_CODE_MAP = new HashMap<>();
 
     static {
-        POINT_TYPE_CONFIG_CODE_MAP.put("关键点", "VIDEO_KEYPOINT");
-        POINT_TYPE_CONFIG_CODE_MAP.put("灵感点", "VIDEO_INSPIRATION");
-        POINT_TYPE_CONFIG_CODE_MAP.put("目的点", "VIDEO_PURPOSE");
+        POINT_TYPE_CONFIG_CODE_MAP.put("关键点", Arrays.asList("VIDEO_KEYPOINT", "KEYPOINT_SUBSTANCE", "KEYPOINT_FORM"));
+        POINT_TYPE_CONFIG_CODE_MAP.put("灵感点", Arrays.asList("VIDEO_INSPIRATION", "INSPIRATION_SUBSTANCE", "INSPIRATION_FORM"));
+        POINT_TYPE_CONFIG_CODE_MAP.put("目的点", Arrays.asList("VIDEO_PURPOSE", "PURPOSE_SUBSTANCE", "PURPOSE_FORM"));
     }
 
     @PostConstruct
@@ -455,6 +454,8 @@ public class ChannelDemandMatchJob {
         result.setPointType(record.getString("需求特征点类型"));
         result.setStandardElement(record.getString("需求特征点"));
         result.setCategoryName(record.getString("需求特征类"));
+        result.setMatchGeneralizedElement(record.getString("泛化元素"));
+        result.setMatchGeneralizedPointType(record.getString("泛化点类型"));
         result.setChannelLevel3(record.getString("三级渠道"));
         result.setElementDimension(record.getString("元素维度"));
 
@@ -507,9 +508,25 @@ public class ChannelDemandMatchJob {
         }
 
         // 策略三:需求特征点类型+需求特征点 均有值 → 用需求特征点召回
-        if (hasValidValue(demand.getPointType()) && hasValidValue(demand.getStandardElement())) {
-            String configCode = POINT_TYPE_CONFIG_CODE_MAP.getOrDefault(demand.getPointType(), "VIDEO_TOPIC");
-            List<ChannelDemandMatchResult> rows = doRecall(demand, demand.getStandardElement(), configCode, topN);
+        if ("特征点".equals(demand.getDemandType()) && hasValidValue(demand.getPointType()) && hasValidValue(demand.getStandardElement())) {
+            List<String> configCodes = POINT_TYPE_CONFIG_CODE_MAP.getOrDefault(demand.getPointType(), Arrays.asList("VIDEO_TOPIC"));
+            List<ChannelDemandMatchResult> rows = new ArrayList<>();
+            for (String configCode : configCodes) {
+                rows.addAll(doRecall(demand, demand.getStandardElement(), configCode, topN / configCodes.size()));
+
+            }
+            allBatchRows.addAll(rows);
+        }
+
+        // 策略三:需求特征点类型+需求特征点 均有值 → 用需求特征点召回
+        if ("特征点泛化".equals(demand.getDemandType()) && hasValidValue(demand.getMatchGeneralizedPointType())
+                && hasValidValue(demand.getMatchGeneralizedElement())) {
+            List<String> configCodes = POINT_TYPE_CONFIG_CODE_MAP.getOrDefault(demand.getMatchGeneralizedPointType(), Arrays.asList("VIDEO_TOPIC"));
+            List<ChannelDemandMatchResult> rows = new ArrayList<>();
+            for (String configCode : configCodes) {
+                rows.addAll(doRecall(demand, demand.getMatchGeneralizedElement(), configCode, topN / configCodes.size()));
+
+            }
             allBatchRows.addAll(rows);
         }
 
@@ -620,6 +637,11 @@ public class ChannelDemandMatchJob {
         fullKey.append("|").append(nullToEmpty(demand.getCategoryName()));
         fullKey.append("|").append(nullToEmpty(demand.getChannelLevel3()));
         fullKey.append("|").append(nullToEmpty(demand.getElementDimension()));
+        // 特征点泛化类型才拼接泛化元素信息
+        if ("特征点泛化".equals(demand.getDemandType())) {
+            fullKey.append("|").append(nullToEmpty(demand.getMatchGeneralizedElement()));
+            fullKey.append("|").append(nullToEmpty(demand.getMatchGeneralizedPointType()));
+        }
         fullKey.append("|").append(matchVideoId);
         fullKey.append("|").append(nullToEmpty(matchConfigCode));
         String hash = Md5Util.encoderByMd5(fullKey.toString());
@@ -693,6 +715,9 @@ public class ChannelDemandMatchJob {
         row.setMatchMethod(demand.getMatchMethod());
         row.setMatchVideoFilter(demand.getMatchVideoFilter());
         row.setMatchSort(demand.getMatchSort());
+        // 复制泛化元素信息
+        row.setMatchGeneralizedElement(demand.getMatchGeneralizedElement());
+        row.setMatchGeneralizedPointType(demand.getMatchGeneralizedPointType());
         return row;
     }
 
@@ -955,6 +980,8 @@ public class ChannelDemandMatchJob {
         sb.append(",需求内容标题");
         sb.append(",需求内容选题");
         sb.append(",需求特征点");
+        sb.append(",泛化元素");
+        sb.append(",泛化点类型");
         sb.append(",需求特征点类型");
         sb.append(",需求特征类");
         sb.append(",三级渠道");
@@ -965,7 +992,7 @@ public class ChannelDemandMatchJob {
         sb.append(",uv占比");
         sb.append(",内容数量");
         sb.append(",效率值");
-        sb.append(" FROM loghubods.dwd_channel_element_demand_feature_stat");
+        sb.append(" FROM loghubods.dwd_channel_element_generalization_stat");
         sb.append(" WHERE dt = '").append(dt).append("'");
         // 人群渠道筛选:使用channelName
         sb.append(" AND 人群_渠道 = '").append(config.getChannelName().replace("'", "''")).append("'");

+ 72 - 0
core/src/main/java/com/tzld/videoVector/model/po/pgVector/ChannelDemandMatchResult.java

@@ -547,6 +547,28 @@ public class ChannelDemandMatchResult {
      */
     private Double matchHeadDistributionSingleReturnRate;
 
+    /**
+     * Database Column Remarks:
+     *   泛化元素
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column channel_demand_match_result.match_generalized_element
+     *
+     * @mbg.generated
+     */
+    private String matchGeneralizedElement;
+
+    /**
+     * Database Column Remarks:
+     *   泛化点类型
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column channel_demand_match_result.match_generalized_point_type
+     *
+     * @mbg.generated
+     */
+    private String matchGeneralizedPointType;
+
     /**
      * This method was generated by MyBatis Generator.
      * This method returns the value of the database column channel_demand_match_result.id
@@ -1723,6 +1745,54 @@ public class ChannelDemandMatchResult {
         this.matchHeadDistributionSingleReturnRate = matchHeadDistributionSingleReturnRate;
     }
 
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column channel_demand_match_result.match_generalized_element
+     *
+     * @return the value of channel_demand_match_result.match_generalized_element
+     *
+     * @mbg.generated
+     */
+    public String getMatchGeneralizedElement() {
+        return matchGeneralizedElement;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column channel_demand_match_result.match_generalized_element
+     *
+     * @param matchGeneralizedElement the value for channel_demand_match_result.match_generalized_element
+     *
+     * @mbg.generated
+     */
+    public void setMatchGeneralizedElement(String matchGeneralizedElement) {
+        this.matchGeneralizedElement = matchGeneralizedElement;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column channel_demand_match_result.match_generalized_point_type
+     *
+     * @return the value of channel_demand_match_result.match_generalized_point_type
+     *
+     * @mbg.generated
+     */
+    public String getMatchGeneralizedPointType() {
+        return matchGeneralizedPointType;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column channel_demand_match_result.match_generalized_point_type
+     *
+     * @param matchGeneralizedPointType the value for channel_demand_match_result.match_generalized_point_type
+     *
+     * @mbg.generated
+     */
+    public void setMatchGeneralizedPointType(String matchGeneralizedPointType) {
+        this.matchGeneralizedPointType = matchGeneralizedPointType;
+    }
+
     /**
      * This method was generated by MyBatis Generator.
      * This method corresponds to the database table channel_demand_match_result
@@ -1784,6 +1854,8 @@ public class ChannelDemandMatchResult {
         sb.append(", matchExposurePv=").append(matchExposurePv);
         sb.append(", matchHeadSingleReturnRate=").append(matchHeadSingleReturnRate);
         sb.append(", matchHeadDistributionSingleReturnRate=").append(matchHeadDistributionSingleReturnRate);
+        sb.append(", matchGeneralizedElement=").append(matchGeneralizedElement);
+        sb.append(", matchGeneralizedPointType=").append(matchGeneralizedPointType);
         sb.append("]");
         return sb.toString();
     }

+ 140 - 0
core/src/main/java/com/tzld/videoVector/model/po/pgVector/ChannelDemandMatchResultExample.java

@@ -3434,6 +3434,146 @@ public class ChannelDemandMatchResultExample {
             addCriterion("match_head_distribution_single_return_rate not between", value1, value2, "matchHeadDistributionSingleReturnRate");
             return (Criteria) this;
         }
+
+        public Criteria andMatchGeneralizedElementIsNull() {
+            addCriterion("match_generalized_element is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedElementIsNotNull() {
+            addCriterion("match_generalized_element is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedElementEqualTo(String value) {
+            addCriterion("match_generalized_element =", value, "matchGeneralizedElement");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedElementNotEqualTo(String value) {
+            addCriterion("match_generalized_element <>", value, "matchGeneralizedElement");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedElementGreaterThan(String value) {
+            addCriterion("match_generalized_element >", value, "matchGeneralizedElement");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedElementGreaterThanOrEqualTo(String value) {
+            addCriterion("match_generalized_element >=", value, "matchGeneralizedElement");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedElementLessThan(String value) {
+            addCriterion("match_generalized_element <", value, "matchGeneralizedElement");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedElementLessThanOrEqualTo(String value) {
+            addCriterion("match_generalized_element <=", value, "matchGeneralizedElement");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedElementLike(String value) {
+            addCriterion("match_generalized_element like", value, "matchGeneralizedElement");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedElementNotLike(String value) {
+            addCriterion("match_generalized_element not like", value, "matchGeneralizedElement");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedElementIn(List<String> values) {
+            addCriterion("match_generalized_element in", values, "matchGeneralizedElement");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedElementNotIn(List<String> values) {
+            addCriterion("match_generalized_element not in", values, "matchGeneralizedElement");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedElementBetween(String value1, String value2) {
+            addCriterion("match_generalized_element between", value1, value2, "matchGeneralizedElement");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedElementNotBetween(String value1, String value2) {
+            addCriterion("match_generalized_element not between", value1, value2, "matchGeneralizedElement");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedPointTypeIsNull() {
+            addCriterion("match_generalized_point_type is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedPointTypeIsNotNull() {
+            addCriterion("match_generalized_point_type is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedPointTypeEqualTo(String value) {
+            addCriterion("match_generalized_point_type =", value, "matchGeneralizedPointType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedPointTypeNotEqualTo(String value) {
+            addCriterion("match_generalized_point_type <>", value, "matchGeneralizedPointType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedPointTypeGreaterThan(String value) {
+            addCriterion("match_generalized_point_type >", value, "matchGeneralizedPointType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedPointTypeGreaterThanOrEqualTo(String value) {
+            addCriterion("match_generalized_point_type >=", value, "matchGeneralizedPointType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedPointTypeLessThan(String value) {
+            addCriterion("match_generalized_point_type <", value, "matchGeneralizedPointType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedPointTypeLessThanOrEqualTo(String value) {
+            addCriterion("match_generalized_point_type <=", value, "matchGeneralizedPointType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedPointTypeLike(String value) {
+            addCriterion("match_generalized_point_type like", value, "matchGeneralizedPointType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedPointTypeNotLike(String value) {
+            addCriterion("match_generalized_point_type not like", value, "matchGeneralizedPointType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedPointTypeIn(List<String> values) {
+            addCriterion("match_generalized_point_type in", values, "matchGeneralizedPointType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedPointTypeNotIn(List<String> values) {
+            addCriterion("match_generalized_point_type not in", values, "matchGeneralizedPointType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedPointTypeBetween(String value1, String value2) {
+            addCriterion("match_generalized_point_type between", value1, value2, "matchGeneralizedPointType");
+            return (Criteria) this;
+        }
+
+        public Criteria andMatchGeneralizedPointTypeNotBetween(String value1, String value2) {
+            addCriterion("match_generalized_point_type not between", value1, value2, "matchGeneralizedPointType");
+            return (Criteria) this;
+        }
     }
 
     /**

+ 6 - 0
core/src/main/java/com/tzld/videoVector/model/vo/ChannelDemandMatchVO.java

@@ -144,5 +144,11 @@ public class ChannelDemandMatchVO {
 
         /** 头部进分发单层回流率 */
         private Double matchHeadDistributionSingleReturnRate;
+
+        /** 泛化元素 */
+        private String matchGeneralizedElement;
+
+        /** 泛化点类型 */
+        private String matchGeneralizedPointType;
     }
 }

+ 2 - 0
core/src/main/java/com/tzld/videoVector/service/impl/VideoSearchServiceImpl.java

@@ -1617,6 +1617,8 @@ public class VideoSearchServiceImpl implements VideoSearchService {
                 mv.setMatchExposurePv(r.getMatchExposurePv());
                 mv.setMatchHeadSingleReturnRate(r.getMatchHeadSingleReturnRate());
                 mv.setMatchHeadDistributionSingleReturnRate(r.getMatchHeadDistributionSingleReturnRate());
+                mv.setMatchGeneralizedElement(r.getMatchGeneralizedElement());
+                mv.setMatchGeneralizedPointType(r.getMatchGeneralizedPointType());
                 vo.getMatchedVideos().add(mv);
             }
         }

+ 38 - 5
core/src/main/resources/mapper/pgVector/ChannelDemandMatchResultMapper.xml

@@ -55,6 +55,8 @@
     <result column="match_exposure_pv" jdbcType="BIGINT" property="matchExposurePv" />
     <result column="match_head_single_return_rate" jdbcType="DOUBLE" property="matchHeadSingleReturnRate" />
     <result column="match_head_distribution_single_return_rate" jdbcType="DOUBLE" property="matchHeadDistributionSingleReturnRate" />
+    <result column="match_generalized_element" jdbcType="VARCHAR" property="matchGeneralizedElement" />
+    <result column="match_generalized_point_type" jdbcType="VARCHAR" property="matchGeneralizedPointType" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <!--
@@ -134,7 +136,8 @@
     partner, account, scene_value, demand_strategy, drive_dimension_time, demand_filter_sort_strategy, 
     demand_type, demand_content_id, demand_content_title, demand_content_topic, uv_ratio, 
     experiment_id, channel_level3, element_dimension, channel_median, match_method, match_video_filter, 
-    match_sort, scene_sum_rov, match_exposure_pv, match_head_single_return_rate, match_head_distribution_single_return_rate
+    match_sort, scene_sum_rov, match_exposure_pv, match_head_single_return_rate, match_head_distribution_single_return_rate, 
+    match_generalized_element, match_generalized_point_type
   </sql>
   <select id="selectByExample" parameterType="com.tzld.videoVector.model.po.pgVector.ChannelDemandMatchResultExample" resultMap="BaseResultMap">
     <!--
@@ -203,7 +206,8 @@
       channel_level3, element_dimension, channel_median, 
       match_method, match_video_filter, match_sort, 
       scene_sum_rov, match_exposure_pv, match_head_single_return_rate, 
-      match_head_distribution_single_return_rate)
+      match_head_distribution_single_return_rate, match_generalized_element, 
+      match_generalized_point_type)
     values (#{configId,jdbcType=BIGINT}, #{dt,jdbcType=VARCHAR}, #{channelName,jdbcType=VARCHAR}, 
       #{crowdSegment,jdbcType=VARCHAR}, #{dimension,jdbcType=VARCHAR}, #{pointType,jdbcType=VARCHAR}, 
       #{standardElement,jdbcType=VARCHAR}, #{categoryName,jdbcType=VARCHAR}, #{crowdCount,jdbcType=INTEGER}, 
@@ -220,7 +224,8 @@
       #{channelLevel3,jdbcType=VARCHAR}, #{elementDimension,jdbcType=VARCHAR}, #{channelMedian,jdbcType=DOUBLE}, 
       #{matchMethod,jdbcType=VARCHAR}, #{matchVideoFilter,jdbcType=VARCHAR}, #{matchSort,jdbcType=VARCHAR}, 
       #{sceneSumRov,jdbcType=DOUBLE}, #{matchExposurePv,jdbcType=BIGINT}, #{matchHeadSingleReturnRate,jdbcType=DOUBLE}, 
-      #{matchHeadDistributionSingleReturnRate,jdbcType=DOUBLE})
+      #{matchHeadDistributionSingleReturnRate,jdbcType=DOUBLE}, #{matchGeneralizedElement,jdbcType=VARCHAR}, 
+      #{matchGeneralizedPointType,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.tzld.videoVector.model.po.pgVector.ChannelDemandMatchResult" useGeneratedKeys="true">
     <!--
@@ -373,6 +378,12 @@
       <if test="matchHeadDistributionSingleReturnRate != null">
         match_head_distribution_single_return_rate,
       </if>
+      <if test="matchGeneralizedElement != null">
+        match_generalized_element,
+      </if>
+      <if test="matchGeneralizedPointType != null">
+        match_generalized_point_type,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="configId != null">
@@ -519,6 +530,12 @@
       <if test="matchHeadDistributionSingleReturnRate != null">
         #{matchHeadDistributionSingleReturnRate,jdbcType=DOUBLE},
       </if>
+      <if test="matchGeneralizedElement != null">
+        #{matchGeneralizedElement,jdbcType=VARCHAR},
+      </if>
+      <if test="matchGeneralizedPointType != null">
+        #{matchGeneralizedPointType,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.tzld.videoVector.model.po.pgVector.ChannelDemandMatchResultExample" resultType="java.lang.Long">
@@ -685,6 +702,12 @@
       <if test="record.matchHeadDistributionSingleReturnRate != null">
         match_head_distribution_single_return_rate = #{record.matchHeadDistributionSingleReturnRate,jdbcType=DOUBLE},
       </if>
+      <if test="record.matchGeneralizedElement != null">
+        match_generalized_element = #{record.matchGeneralizedElement,jdbcType=VARCHAR},
+      </if>
+      <if test="record.matchGeneralizedPointType != null">
+        match_generalized_point_type = #{record.matchGeneralizedPointType,jdbcType=VARCHAR},
+      </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -744,7 +767,9 @@
       scene_sum_rov = #{record.sceneSumRov,jdbcType=DOUBLE},
       match_exposure_pv = #{record.matchExposurePv,jdbcType=BIGINT},
       match_head_single_return_rate = #{record.matchHeadSingleReturnRate,jdbcType=DOUBLE},
-      match_head_distribution_single_return_rate = #{record.matchHeadDistributionSingleReturnRate,jdbcType=DOUBLE}
+      match_head_distribution_single_return_rate = #{record.matchHeadDistributionSingleReturnRate,jdbcType=DOUBLE},
+      match_generalized_element = #{record.matchGeneralizedElement,jdbcType=VARCHAR},
+      match_generalized_point_type = #{record.matchGeneralizedPointType,jdbcType=VARCHAR}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -900,6 +925,12 @@
       <if test="matchHeadDistributionSingleReturnRate != null">
         match_head_distribution_single_return_rate = #{matchHeadDistributionSingleReturnRate,jdbcType=DOUBLE},
       </if>
+      <if test="matchGeneralizedElement != null">
+        match_generalized_element = #{matchGeneralizedElement,jdbcType=VARCHAR},
+      </if>
+      <if test="matchGeneralizedPointType != null">
+        match_generalized_point_type = #{matchGeneralizedPointType,jdbcType=VARCHAR},
+      </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
   </update>
@@ -956,7 +987,9 @@
       scene_sum_rov = #{sceneSumRov,jdbcType=DOUBLE},
       match_exposure_pv = #{matchExposurePv,jdbcType=BIGINT},
       match_head_single_return_rate = #{matchHeadSingleReturnRate,jdbcType=DOUBLE},
-      match_head_distribution_single_return_rate = #{matchHeadDistributionSingleReturnRate,jdbcType=DOUBLE}
+      match_head_distribution_single_return_rate = #{matchHeadDistributionSingleReturnRate,jdbcType=DOUBLE},
+      match_generalized_element = #{matchGeneralizedElement,jdbcType=VARCHAR},
+      match_generalized_point_type = #{matchGeneralizedPointType,jdbcType=VARCHAR}
     where id = #{id,jdbcType=BIGINT}
   </update>
 </mapper>