圈选概念

news/2024/12/19 17:58:24/文章来源:https://www.cnblogs.com/wxwall/p/18617720

电商系统中,最核心的几个点就是如何圈选出商品、消费者、门店

在整个逻辑中,圈选有两个点

  1. 选出目标集合
  2. 给出圈选的规则

选出目标集合

以商品为例,在商品选品中,选出目标集合,有几种方式

  1. 通过人工方式将已有的商品列表导入到系统中
  2. 通过外部系统收集的商品列表导入到系统中,如一些商品橱窗、活动会场、指定门店

上面的选出目标集合的方式简单高效,使用门槛也不高,实现成本也相对较底。

通过圈选规则选定

在商品选品中,选择商品运营的方式有很多,绝大部分都是通过商品属性做分类、过滤、排除、聚合等操作。

商品属性多

因为商品的属性特别多,且商品还与之关联的实体也特别多,那么在如此多的属性下,必然能够归类的条件也会特别多。

商品来源多

商品线的数据往往不止来自于一方,还有许多在未售卖的时候,就会将这个商品建立起来。而在圈选活动的时候,如果只依赖于售卖商品,那将会缺失数据。所以,从各业务方收集数据也是一个大的工作。

商品标准不一样

由于来源方不一致,商品信息多多少少会有字段缺失或不一致。甚至有些线上线下的商品混合的情况。或是像淘宝京东这种来自不同平台的商品数据。

所以,对于这类数据,一定要自建一套商品体系来兼容整合来自天南地北的数据。并且,制定统一的规范来强制数据落地。

解法

建立统一的商品库

将各平台的商品统一建立自己的商品库。

由于这种数据是可预见的多字段、大数据量、多查询条件的三高表。必须在设计之初就规划好以后的查询方式。

如一开始就确立需要按区域条件查询商品,在设计时就可以拿区域做分表,

如一开始就按时间来做过滤条件,在设计时就要拿时间做分区等。

还要为查询时效作限制,这些都必须在产品提需求时就要考虑到并遵守好。否则后期就是烂摊子。

设定圈选规则

有了商品数据源了后,后面就是如何设定圈选规则了

  1. 按商品自己的属性设定
  2. 按集合的方式取并、交、差集

系统先设定1个固定筛选的项进行粗筛。再设定一部份商品属性作为过滤条件筛选。筛选的结果一定是个结果集。

得到结果集后,再将结果集进行并、交、差。在这个结果之上,一定要将结果数据保存下来,不能再提供是指定还是排除选项。否则,对于系统来说,圈选的意义就串了。

上面的逻辑是对于商品已经确定的时候的设计,先分析整个事件过程来梳理一个系统边界。

圈选核心事件较为简单。

一个规则建立好后,再在商品数据源增加了变更了商品,如何操作了?

  1. 每增加、删除一个商品,发送一个事件
  2. 监听事件的商品规则重跑一次,对于规则中符合的商品进行条件过滤,底层再进行数据的增减,保证数据一致
  3. 商品规则重跑只做一件事,更新规则是圈选规则的商品列表

规则有效期

一个圈选规则确定后,最好是要有个有效期设定,如果没有有效期,那么圈选规则只要设定好后,数据就永远需要提供。

至于圈选有效期是否让运营选择,还是默认设定,由业务来确定了。

圈选规则相比于标签规则来说,好处是非常多的。

在标签规则中,每个商品打个标,标签可以无限增,而商品属性就会变得非常臃肿,久而久之,总有崩掉的一天。

圈选规则应该是个非常灵活的方式,想怎么圈就怎么圈,数据源更多更灵活,规则也可以用交、并、差集的方式聚合等

总之,设定一下产品方案时、技术方案优先考虑到适应场景,将会对整个系统提供非常可靠的成本控制。

在圈选商品的时候,由于圈选的条件较多,商品数据较多,整个系统设计较为复杂。但如果是圈人设计的话,一般人的数量是整个系统中较大的存在,而圈人的圈选条件相对较少,这种圈人的设计与圈品的设计在核心设计上是趋同的。

圈店由于数据量不大,圈选条件不多,考虑的点相对较少。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/855498.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 悬臂梁的有限元分析

依赖包 fenics是一种用于有限元计算的动态面向对象库,它提供了一种专用的数学语言UFL来表述变分形式,并自动生成底层C++代码。 fenics 名称释义:fe:finite element的简写 cs:computational software的简写 ni:有了fe和cs后,由于最初fenics软件是在芝加哥大学(简称为phoe…

枚举思想——算法学习(一)

枚举思想——算法学习(一)前言 在算法学习的道路上,枚举思想是一种简单却强大的思想。作为一种暴力求解方法,枚举算法通过穷尽所有可能的解,从中找到满足条件的最优解或所有解。虽然它看似“低效”,但在解决许多实际问题时却显得直观且有效,尤其是在问题规模可控的情况下…

20222307 2024-2025-1 《网络与系统攻防技术》实验八实验报告

1.实验内容 (1)Web前端HTML 能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。 (2)Web前端javascipt 理解JavaScript的基本功能,理解DOM。 在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+…

《Django 5 By Example》读后感

一、 为什么选择这本书? 本人的工作方向为Python Web方向,想了解下今年该方向有哪些新书出版,遂上packt出版社网站上看了看,发现这本书出版时间比较新(2024年9月),那就它了。 从2024年11月11日至2024年12月18日期间,花了 22 天阅读完《Django 5 By Example》(《Django项目…

面向对象编程,类和对象

类的关键词 Class 类一般申明在namespace中,枚举和struct一般也在namespace中申明 类的申明语法(类前面可以加访问修饰符) class 类名 {特征——成员变量行为——成员方法保护特征——成员属性构造函数和析构函数索引器运算符重载静态成员 }类申明实例 命名使用帕斯 在同一个…

mysql mysqldump 定时备份

mysqldump方式备份Windows 一、创建bat 任务脚本 ⚠️ 内容背后不能有中文空格,否则会运行失败 新建 bat 脚本复制以下内容,安装自己的需求对内容进行修改@echo off::命令行窗口中显示此条信息 @echo 开始备份数据库::将hour设置为此刻小时位的时间,从0位置开始取2位 set h…

OCS2::ocs2_centroidal_model_质心动量模型

1. ModelHelperFunctions.cpp 1.1 updateCentroidalDynamics() : 质心动力学更新 template <typename SCALAR_T> void updateCentroidalDynamics(PinocchioInterfaceTpl<SCALAR_T>& interface, const CentroidalModelInfoTpl<SCALAR_T>& info,const …

密码学-古典密码

密码学-古典密码 前言 古典密码学(Classic cryptography)和现代密码学(Modern cryptography)的主要差别在于计算机的使用,一般来说,古典密码学是基于字符的,而现代密码学是基于二进制位的。 代换 代换密码是将明文中的字符替代成其他字符,即替代转换,若整个加密过程中…

【笔记】组合数学初步

一些初等的组合数学知识二项式系数 定义: 我们在高中时常见的二项式系数的形式是 \[C_{n}^{k} = \frac{n!}{k!(n-k)!} \]但下文将采用如下的定义: \[\binom{n}{k} = \begin{cases}\dfrac{n^{\underline{k}}}{k!} & k \ge 0\\\\0 & k < 0\end{cases} \]注意这里对 …

翻转字符串翻转单词

一、翻转字符串问题描述 请实现⼀个算法,在不使⽤额外数据结构和储存空间的情况下,翻转⼀个给定的字符串(可以使⽤单个过程变量)。 解题思路 由于不允许使用额外的数据接口和存储空间,所以我们将⼀个字符串以中间字符为轴,前后翻转,也就是将str[len]赋值给str[0],将str[0…

拒绝 Helm? 如何在 K8s 上部署 KRaft 模式 Kafka 集群?

首发:运维有术 今天分享的主题是:不使用 Helm、Operator,如何在 K8s 集群上手工部署一个开启 SASL 认证的 KRaft 模式的 Kafka 集群? 本文,我将为您提供一份全面的实战指南,逐步引导您完成以下关键任务:配置 Kafka Secret:管理用户密码和集群 ID 配置 Kafka Service:使…