商品列表筛选排序规则可配置化管理

来源:互联网 发布:东华 数据库 编辑:程序博客网 时间:2024/05/17 22:21

背景

      全站若干关键位置有商品推荐位,推荐出来的商品会由于运营活动的调整,不同用户不同时间展示不同的商品。
    在实际运营过程中,由于设计算法时考虑问题不能完全周到,展示出来的商品往往不完全是意图推荐的商品。
      而这个时候如果需要调整算法的话也是不可能的,这就造成了用户流量的浪费。
    产品需要解决几个问题:
      1,推荐算法上线前可以试运行,可以及时看到试运行期间推荐出来的商品;
      2,算法可以后台调整,调整结果所见即所得;
      3,一个推荐位可以配若干算法,可以调整使用每个算法的比例;

需要有的功能

  • 算法规则的展现/编辑 
  • 算法规则的保存 
  • 算法规则的执行 
  • 算法规则的测试:1,添加测试用户;2,定时执行,保存测试结果; 
  • 算法规则按流量比例适配到不同的接口;

算法处理流程图




流程各阶段可选的参数

DataSource   +OnlineProduct      +clientType(PC|APP|SIGNIN|ALL)      +productType(ALL|PHYSICAL|VIRTUAL)      +promotionType(TIME_PANIC)      +virtualType(ONE|TWO|TICKET|LUFAX_COIN)      +tradeType(EXCHANGE|SCRATCH|AUCTION)      +saleStatus(NOT_START|NOT_FINISHED|FINISHED|TRADING|TODAY_HAS_START|TODAY_TO_START|TOMORROW_START|YESTERDAY_START)      +category   +OfflineRecommend      +ProductId      +UserId   +OnlineSchedule      +......      +...... FilterCondition   +enoughLumi(TRUE|FALSE)   +enoughAuthority   +reward(Coin|Other)   +purchaseNumberLimit   +enoughReturnAsset   +authority(PUBLIC|VIP|ALL) SortMethod   +pointsPrice(DESC|ASC)   +cashPrice(DESC|ASC)   +startTime(DESC|ASC)   +saleStatus(FINISHED|BEFORE_START|YESTERDAY_START|TODAY_HAVE_START|TODAY_TO_START|TOMORROW_TO_START|FUTURE_START)   +tradeType(EXCHANGE|SCRATCH|AUCTION)   +pageView(DESC|ASC)   +endTime(DESC|ASC)   +createdAt(DESC|ASC)   +rewardCoinNum(DESC|ASC)   +coinPriceRate(DESC|ASC)   +orderViewRate(DESC|ASC)   +authorityRank(DESC|ASC)   +tradeType(EXCHANGE|SCRATCH|AUCTION)   +productType(PHYSICAL|VIRTUAL|LUFAX_COIN) LimitNumber  +number

算法的语义表达

(  (    (SOURCE:VIP,SCRATCH,TRADING,PC|ALL;Filter:enoughLumi;Sort:endTime|ASC;NUMBER:1)       XOR    (SOURCE:PUBLIC,SCRATCH,TRADING,PC|ALL;Filter:enoughLumi;Sort:endTime|ASC;NUMBER:1)       XOR    (SOURCE:SCRATCH,TRADING,PC|ALL;Sort:pointsPrice|Desc,endTime|ASC;NUMBER:1)  )  AND  (    (SOURCE:VIP,EXCHANGE,TRADING,PC|ALL;Filter:enoughLumi;Sort:endTime|ASC;NUMBER:1)       XOR    (SOURCE:PULIBC,EXCHANGE,TRADING,PC|ALL;Filter:enoughLumi;Sort:endTime|ASC;NUMBER:1)       XOR    (SOURCE:EXCHANGE,TRADING,PC|ALL;Sort:pointsPriceDesc,endTime|ASC;NUMBER:1)  )  AND  (     (SOURCE:VIP,AUCTION,TRADING,PC|ALL;Filter:enoughLumi;Sort:endTime|ASC;NUMBER:1)        XOR     (SOURCE:PULIBC,AUCTION,TRADING,PC|ALL;Filter:enoughLumi;Sort:endTime|ASC;NUMBER:1)       XOR     (SOURCE:AUCTION,TRADING,PC|ALL;Sort:pointsPriceDesc,endTime|ASC;NUMBER:1)   ))

XML格式语义描述

<ruleset id=1 fetchnumber=3>  <ruleset fetchnumber=2>    </ruleset>  <rule  fetchnumber=1>    ......  </rule></ruleset> <ruleset id=1 fetchnumber=3>  <rule fetchnumber=1>    ......  </rule></ruleset>  <rule fetchnumber="3">  <source>     <property name="salestatus" multiple="true">        <condition value="1" />        <condition value="2" />     </property>     <property name="productType" value="2" />  </source>  <filter>     <property name="clienttype" >        <condition value="PC" />        <condition value="ALL" />     </property>   </fitler>   <sort>     <property name="salestatus" composite="true" direction="DESC">        <condition value="1">           <property name="pageview" direction="DESC" />           <property name="priority" direction="ASC" />        </condition>        <condition value="2">           <property name="priority" direction="DESC" />           <property name="createdat" direction="ASC" />        </condition>     </property>   </sort></rule>

算法规则树表示


排序规则树表示







0 0