本公开涉及计算机处理技术领域,尤其涉及一种筛选页面生成方法、装置、电子设备及存储介质。
背景技术:
为了方便用户查询满足自身需求的商品,可以向用户提供包含筛选项的页面,用户可以根据自身需求选取筛选项,从而根据这些筛选项查询的商品即为满足自身需求的商品。
现有技术中,一种筛选页面的生成方法包括:首先,接收针对筛选项的业务数据查询请求,并查询业务数据,其中这里的业务数据通常是截断的部分业务数据,从而可以保证查询性能;然后,将业务数据按照商品进行归类,得到每个商品的特征数据;最后,从该商品的特征数据中提取满足每个筛选项的筛选条件的商品,并统计商品数量,从而可以按照商品数量选取合适的筛选项在筛选页面中展示。
发明人对上述方案进行研究之后发现,上述方案由于业务数据不是全量的,导致统计的商品数量的准确度较低,统计所消耗的时长较大,进而生成筛选页面的延迟较大。
技术实现要素:
本公开提供一种筛选页面生成方法、装置、电子设备及存储介质,可以通过索引信息直接统计筛选项筛选的商品数量,索引信息是预先根据全量数据生成的,有助于提高商品数量的准确度,减小统计所消耗的时长,减小生成筛选页面的延迟。
根据本公开的第一方面,提供了一种筛选页面生成方法,所述方法包括:
接收筛选页面请求;
响应于所述筛选页面请求,读取对应筛选项的索引信息;所述筛选项的索引信息包括至少一个商品对应的索引位,所述索引位是预先设置的,若所述商品的特征数据满足所述筛选项的筛选条件,则所述商品对应的索引位被设置为关联标识;若所述商品的特征数据不满足所述筛选条件,则所述商品对应的索引位被设置为非关联标识;
统计所述筛选项的索引信息中索引位为关联标识的数量,作为所述筛选项的商品数量;
生成并展示筛选页面,所述筛选页面包含根据所述商品数量确定的至少一个目标筛选项。
根据本公开的第二方面,提供了一种筛选页面生成装置,所述装置包括:
筛选页面请求模块,用于接收筛选页面请求;
索引信息获取模块,用于响应于所述筛选页面请求,读取对应筛选项的索引信息;所述筛选项的索引信息包括至少一个商品对应的索引位,所述索引位是预先设置的,若所述商品的特征数据满足所述筛选项的筛选条件,则所述商品对应的索引位被设置为关联标识;若所述商品的特征数据不满足所述筛选条件,则所述商品对应的索引位被设置为非关联标识;
数量统计模块,用于统计所述筛选项的索引信息中索引位为关联标识的数量,作为所述筛选项的商品数量;
筛选页面展示模块,用于生成并展示筛选页面,所述筛选页面包含根据所述商品数量确定的至少一个目标筛选项。
根据本公开的第三方面,提供了一种电子设备,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现前述筛选页面生成方法。
根据本公开的第四方面,提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述筛选页面生成方法。
本公开提供了一种筛选页面生成方法、装置、电子设备及存储介质,可以首先接收筛选页面请求;然后响应于所述筛选页面请求,读取对应筛选项的索引信息;所述筛选项的索引信息包括至少一个商品对应的索引位,所述索引位是预先设置的,若所述商品的特征数据满足所述筛选项的筛选条件,则所述商品对应的索引位被设置为关联标识;若所述商品的特征数据不满足所述筛选条件,则所述商品对应的索引位被设置为非关联标识;并统计所述筛选项的索引信息中索引位为关联标识的数量,作为所述筛选项的商品数量;最后生成并展示筛选页面,所述筛选页面包含根据所述商品数量确定的至少一个目标筛选项。本公开通过索引信息直接统计筛选项筛选的商品数量,索引信息是预先根据全量数据生成的,有助于提高商品数量的准确度,减小统计所消耗的时长,减小生成筛选页面的延迟。
附图说明
为了更清楚地说明本公开的技术方案,下面将对本公开的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本公开的筛选页面生成方法的步骤流程图;
图2示出了本公开的筛选页面生成装置的结构图;
图3示出了本公开的电子设备的结构图。
具体实施方式
下面将结合本公开中的附图,对本公开中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
参照图1,其示出了本公开的筛选页面生成方法的步骤流程图,具体如下:
步骤101,接收筛选页面请求。
其中,筛选页面请求用于请求生成筛选页面,筛选页面是用户选取筛选项的页面,筛选项用于筛选商品,筛选页面可以包括多个筛选项。
步骤102,响应于所述筛选页面请求,读取对应筛选项的索引信息;所述筛选项的索引信息包括至少一个商品对应的索引位,所述索引位是预先设置的,若所述商品的特征数据满足所述筛选项的筛选条件,则所述商品对应的索引位被设置为关联标识;若所述商品的特征数据不满足所述筛选条件,则所述商品对应的索引位被设置为非关联标识。
其中,筛选页面可以预先绑定若干筛选项,每个筛选项均对应有筛选条件,用于为筛选项筛选符合该筛选条件的商品。例如,对于一个筛选项,其筛选条件可以为价格为61元至100元;对于另一个筛选项,其筛选条件可以为品类为餐饮类。
商户筛选项的索引信息是表示每个商品是否满足该筛选项的筛选条件的信息集合,筛选项的索引信息是预先离线生成的,可以预先存储于任意存储设备中,例如,数据库、缓存、存储器等。每个筛选项的索引信息中包含了大量商品的索引位,每个索引位代表该商品的特征信息是否满足该筛选项的筛选条件。
在本公开的实施例中,每个索引位的取值可以是关联标识或非关联标识,关联标识代表商品满足筛选条件,非关联标识代表商品不满足筛选条件。关联标识和非关联标识可以是任意选取的两个不同字符。例如,关联标识可以用“yes”表示,非关联标识可以用“no”表示,若一个商品的特征数据满足筛选条件,则将该商品的索引位为“yes”,若一个商品的特征数据不满足筛选条件,则将该商品的索引位为“no”。
基于上述索引位和索引信息,将索引位和商品标识按照对应关系存储得到索引信息,其中,商品标识为用于检索的关键信息。索引信息可以以数据表的形式存储在数据库中,或,以key-value的对应关系存储在文件中,或,以指定格式存储在内存、缓存等存储区域中。
当然,关联标识和非关联标识还可以用其余标识标识,本公开的实施例对其不加以限制。
步骤103,统计所述筛选项的索引信息中索引位为关联标识的数量,作为所述筛选项的商品数量。
可以理解,索引位为关联标识的数量为满足筛选条件的商品数量。
步骤104,生成并展示筛选页面,所述筛选页面包含根据所述商品数量确定的至少一个目标筛选项。
可以理解,目标筛选项可以是商品数量大于一定阈值的筛选项,或商品数量较大的多个筛选项。
可选地,在本公开的另一种实施例中,所述商品的索引位为一个比特位,所述关联标识和所述非关联标识是二进制的两个基本算符,所述关联标识对应的基本算符为第一基本算符,所述非关联标识对应的基本算符为第二基本算符,所述筛选项的索引信息是所述商品的比特位按照预设顺序排列的比特序列,所述步骤103包括子步骤a:
子步骤a,统计所述筛选项的比特序列中比特位为所述第一基本算符的数量,作为所述筛选项的商品数量。
在本公开的实施例中,可以将特征数据满足筛选条件的商品的比特位按照商品顺序排列,得到筛选项的比特序列,每个比特位取值为二进制的基本算符:0和1。可以任意设置其与关联标识和非关联标识的对应关系,从而每个比特位上的取值非0即1,可以理解,当第二基本算符为0时,第一基本算符为1;当第二基本算符为1时,第一基本算符为0。后续说明中均以第一基本算符为1,第二基本算符为0为例说明。例如,对于一个网络销售平台上的筛选项fid1和fid2,fid1的筛选条件为:商品的价格为40元至60元,fid2的筛选条件为:商品的价格为61元至100元,若存在9个商品:cmd1、cmd2、cmd3、cmd4、cmd5、cmd6、cmd7、cmd8和cmd9,其特征数据中的价格分别为:38、69、51、110、78、120、35、111和91,则满足fid1的筛选条件的商品为:cmd3和cmd7,满足fid2的筛选条件的商品为:cmd2、cmd5、cmd9,从而可以按照cmd1、cmd2、cmd3、cmd4、cmd5、cmd6、cmd7、cmd8和cmd9的顺序,得到fid1的比特序列为:001000100,fid2的比特序列为:010010001。
可以看出,比特序列即为一个二进制序列,对于比特序列001000100,当关联标识对应的基本算符为1时,从比特序列001000100中统计得到筛选项的商品数量为2;对于比特序列010010001,当关联标识对应的基本算符为1时,从比特序列010010001中统计得到筛选项的商品数量为3。
本公开的实施例可以采用由比特位构成的比特序列表示商品是否满足筛选项的筛选条件,由于比特位仅占用1bit存储空间,从而有效降低了存储空间,此外,比特位的数量统计使得统计速度较快。
可选地,在本公开的另一种实施例中,所述商品的比特位通过如下步骤b1至b3进行更新:
步骤b1,监听索引更新信息队列,并从所述索引更新信息队列中获取索引更新信息,所述索引更新信息包括:更新商品、第一更新筛选项和第二更新筛选项,所述第一更新筛选项是更新前的特征数据满足的筛选条件对应的筛选项,所述第二更新筛选项是更新后的特征数据满足的筛选条件对应的筛选项,所述更新后的特征数据是离线生成的,所述更新商品、所述更新前的特征数据和更新后的特征数据是从业务更新信息中提取的。
其中,业务更新信息是在业务数据发生更新时生成的。业务数据可以由业务数据的归属方更新,例如,业务数据为商品数据时,商品数据的归属方为商户,从而在商品数据中的价格被商户更新之后,会将商品作为更新商品、更新前的价格作为更新前的特征数据、更新后的价格作为更新后的特征数据,以添加至新建的业务更新信息中,得到业务更新信息。
在接收到该业务更新信息之后,首先,可以从业务更新信息中提取更新前的特征数据、更新后的特征数据和更新商品。例如,在商户将前述第3个商品cmd3的价格从51元更新为63元之后,从业务更新信息中提取的更新商品为第3个商品,更新前的特征数据为更新前的价格51元,更新后的特征数据为更新后的价格63元。
然后,根据更新前的特征数据确定其满足的筛选项作为第一更新筛选项,并根据更新后的特征数据确定其满足的筛选项作为第二更新筛选项。例如,对于前述商品cmd3,更新前的价格51元满足筛选条件为价格40元至60元的筛选项,即为第一更新筛选项;更新后的价格63元满足筛选条件为价格61元至100元的筛选项,即为第二更新筛选项。
最后,将更新商品、第一更新筛选项和第二更新筛选项添加至新建的索引更新信息中,并发送至索引管理器,以使索引管理器更新索引。可以理解,将更新商品、第一更新筛选项和第二更新筛选项添加至新建的索引更新信息中,即为:将更新商品的标识、第一更新筛选项的标识和第二更新筛选项的标识添加至新建的索引更新信息中。例如,将前述商品cmd3的标识3作为更新商品的标识添加至索引更新信息中,将筛选条件为价格40元至61元的筛选项的标识1作为第一更新筛选项的标识添加至索引更新信息中,将筛选条件为价格61元至100元的筛选项的标识2作为第二更新筛选项的标识添加至索引更新信息中。
需要说明的是,上述索引管理器可以为专门用于管理索引信息的任意处理器,还可以为设置于其余设备的虚拟模块。
步骤b2,将所述第一更新筛选项的比特序列中所述更新商品的比特位设置为第二基本算符。
具体地,首先,可以根据索引更新信息中的第一更新筛选项的标识获取到第一更新筛选项的比特序列,例如,对于前述索引更新信息中的第一更新筛选项的标识1,可以读取第1个筛选项的比特序列:001000100,得到第一更新筛选项的比特序列;然后,更新索引更新信息中的更新商品的标识cmd3对应的比特位,例如,对于前述索引更新信息中的更新商品的标识3,可以将001000100中第3个比特位修改为第二基本算符0,得到更新后的第一更新筛选项的比特序列为:000000100。
步骤b3,将所述第二更新筛选项的比特序列中所述更新商品的比特位设置为第一基本算符。
具体地,首先,可以根据索引更新信息中的第二更新筛选项的标识获取到第二更新筛选项的比特序列,例如,对于前述索引更新信息中的第二更新筛选项的标识2,可以读取第2个筛选项的比特序列:010010001,得到第二更新筛选项的比特序列;然后,更新索引更新信息中的更新商品的标识对应的比特位,例如,将010010001中第3个比特位修改为第一基本算符1,得到更新后的第二更新筛选项的比特序列为:011010001。
可以看出,由于第一更新筛选项和第二更新筛选项均为对价格的筛选,且筛选条件互斥,从而第一更新筛选项和第二更新筛选项的同一位比特位是可能是互斥的,从而修改时,不仅要修改更新前的价格满足的第一更新筛选项的比特序列,还要修改更新后的价格满足的第二更新筛选项的比特序列。例如,对于上述例子,若将fid1的比特序列从001000100修改为000000100,而不修改fid2的比特序列010010001,那么会存在矛盾,因为修改后的第3个商品cmd3的价格为63,其不再满足fid1的筛选条件,从而fid1的比特序列的第3位为0。
当然,在某种情况下,并不需要筛选项的比特序列,因为更新前的特征数据满足的筛选项和更新后的特征数据满足的筛选项相同。例如,若将商品cmd9的价格从91元修改为80元,由于更新前的价格满足的筛选项与更新后的价格满足的筛选项相同,从而不需要生成索引更新信息。
本公开的实施例可以通过索引更新信息的方式实时的更新比特序列,有助于提高比特序列的准确度。
可选地,在本公开的另一种实施例中,所述商品被聚类为至少一个商户中,所述筛选项的比特序列包括至少一个商户的比特序列,每个所述商户的比特序列中包含至少一个所述商品的比特位;所述商品的比特位通过如下步骤c1至c3进行更新:
步骤c1,监听索引更新信息队列,并从所述索引更新信息队列中获取索引更新信息,所述索引更新信息包括:更新商户、更新商品、第一更新筛选项和第二更新筛选项,所述第一更新筛选项是更新前的特征数据满足的筛选条件对应的筛选项,所述第二更新筛选项是更新后的特征数据满足的筛选条件对应的筛选项,所述更新后的特征数据是离线生成的,所述更新商户、更新商品、所述更新前的特征数据和更新后的特征数据是从业务更新信息中提取的。
在本公开的实施例中,商品可以聚类得到商品所属的商户。
在对商品进行聚类之后,业务更新信息和索引更新信息中不仅需要指明更新商品,还要指明更新商品的商户,即更新商户。
其中,业务更新信息是在业务数据发生更新时生成的。业务数据可以由业务数据的归属方更新,例如,业务数据为商品数据时,商品数据的归属方为商户,从而在商品数据中的商品的价格被商户更新之后,会将商户作为更新商户、商品作为更新商品、更新前的价格作为更新前的特征数据、更新后的价格作为更新后的特征数据,并添加至新建的业务更新信息中,得到业务更新信息。
在接收到该业务更新信息之后,首先,可以从业务更新信息中提取更新前的特征数据、更新后的特征数据、更新商品和更新商户。例如,在商户将前述第1个商户mct1的第3个商品cmd3的价格从51元更新为63元之后,业务更新信息中提取的更新商户为第1个商户,更新商品为第3个商品,更新前的特征数据为更新前的价格51元,更新后的特征数据为更新后的价格63元。
然后,根据更新前的特征数据确定其满足的筛选项作为第一更新筛选项,并根据更新后的特征数据确定其满足的筛选项作为第二更新筛选项。例如,对于前述商品cmd3,更新前的价格51满足筛选条件为价格40至60的筛选项,即为为第一更新筛选项;更新后的价格63满足筛选条件为价格61至100的筛选项,即为为第二更新筛选项。
最后,将更新商户、更新商品、第一更新筛选项和第二更新筛选项添加至新建的索引更新信息中,并发送至索引管理器,以使索引管理器更新索引。可以理解,将更新商户、更新商品、第一更新筛选项和第二更新筛选项添加至新建的索引更新信息中,即为:将更新商户的标识、将更新商品的标识、第一更新筛选项的标识和第二更新筛选项的标识添加至新建的索引更新信息中。例如,将前述商户mct1的标识1作为更新商户的标识添加至索引更新信息中,将前述商品cmd3的标识3作为更新商品的标识添加至索引更新信息中,将筛选条件为价格40至60的筛选项fid1的标识1作为第一更新筛选项的标识,添加至索引更新信息中,将筛选条件为价格61至100的筛选项fid2的标识2作为第二更新筛选项的标识,添加至索引更新信息中。
步骤c2,将所述第一更新筛选项的比特序列中包含的所述更新商户的比特序列中,所述更新商品的比特位设置为第二基本算符。
在本公开的实施例中,筛选项的比特序列是由多个商户的比特序列构成的,每个商户的比特序列由聚类至该商户下的商品对应的比特位构成。例如,存在商户mct1、mct2和mct3,商户mct1提供的商品分别为cmd1、cmd2、cmd3和cmd4,商户mct2提供的商品分别为cmd5、cmd6和cmd7,商户mct3提供的商品分别为cmd8和cmd9,其中,cmd1、cmd2、cmd3、cmd4、cmd5、cmd6、cmd7、cmd8和cmd9的的价格分别为:38、69、51、110、78、120、35、111和91,若筛选项fid1的筛选条件为:商品的价格为40元至60元,筛选项fid2的筛选条件为:商品的价格为61元至100元,则可以得到筛选项fid1的比特序列为:{0010,001,00},其中,0010为商户mct1的比特序列,001为商户mct2的比特序列,00为商户mct3的比特序列;筛选项fid2的比特序列为:{0100,100,01},其中,0100为商户mct1的比特序列,100为商户mct2的比特序列,01为商户mct3的比特序列。
对上述结构的第一更新筛选项的比特序列进行更新时的主要步骤包括:首先,可以根据索引更新信息中的第一更新筛选项的标识获取到第一更新筛选项的比特序列,例如,对于前述索引更新信息中的第一更新筛选项的标识1,可以读取第1个筛选项的比特序列:{0010,001,00},得到第一更新筛选项的比特序列;然后,根据索引更新信息中的更新商户的标识,从第一更新筛选项的比特序列中获取更新商户的比特序列,例如,对于前述索引更新信息中的更新商户的标识1,可以从{0010,001,00}中读取第1个商户的比特序列0010,得到更新商户的比特序列;最后,将更新商户的比特序列中更新商品的标识对应的比特位进行更新,例如,对于前述索引更新信息中的更新商品的标识3,可以将0010中第3个比特位修改为第二基本算符0,得到更新后的更新商户的比特序列为:0000,更新后的第一更新筛选项的比特序列为:{0000,001,00}。
步骤c3,将所述第二更新筛选项的比特序列中包含的所述更新商户的比特序列中,所述更新商品的比特位设置为第一基本算符。
基于步骤c2中的比特序列结构,对第二更新筛选项的比特序列进行更新时的主要步骤包括:首先,可以根据索引更新信息中的第二更新筛选项的标识获取到第二更新筛选项的比特序列,例如,对于前述索引更新信息中的第二更新筛选项的标识2,可以读取第2个筛选项的比特序列:{0100,100,01},得到第二更新筛选项的比特序列;然后,根据索引更新信息中的更新商户的标识,从第二更新筛选项的比特序列中获取更新商户的比特序列,例如,对于前述索引更新信息中的更新商户的标识1,可以从{0100,100,01}中读取第1个商户的比特序列0100,得到更新商户的比特序列;最后,将更新商户的比特序列中更新商品的标识对应的比特位进行更新,例如,对于前述索引更新信息中的更新商品的标识3,可以将0100中第3个比特位修改为第一基本算符1,得到更新后的更新商户的比特序列为:0110,更新后的第二更新筛选项的比特序列为:{0110,100,01}
本公开的实施例可以通过索引更新信息的方式实时的更新嵌套结构的比特序列,有助于提高比特序列的准确度。
可选地,在本公开的另一种实施例中,所述商品被聚类为至少一个商户中,所述筛选项的比特序列包括至少一个商户的比特序列,每个所述商户的比特序列中包含至少一个所述商品的比特位;所述商品的比特位通过如下步骤d1至d3进行更新:
步骤d1,监听索引更新信息队列,并从所述索引更新信息队列中获取索引更新信息,所述索引更新信息包括:更新商户、更新商品、第一更新筛选项和第二更新筛选项,所述第一更新筛选项是更新前的特征数据满足的筛选条件对应的筛选项,所述第二更新筛选项是更新后的特征数据满足的筛选条件对应的筛选项,所述更新后的特征数据是离线生成的,所述更新商户、所述更新商品、所述更新前的特征数据和更新后的特征数据是从业务更新信息中提取的。
在本公开的实施例中,商品的归属方为商户,从而可以将同一商户的商品聚类到该商户中。
在对商品进行聚类之后,业务更新信息和索引更新信息中不仅需要指明更新商品,还要指明更新商品的商户,即更新商户。
其中,业务更新信息是在业务数据发生更新时生成的。业务数据可以由业务数据的归属方更新,例如,业务数据为商品数据时,商品数据的归属方为商户,从而在商品数据中的商品的价格被商户更新之后,会将商户作为更新商户、商品作为更新商品、更新前的价格作为更新前的特征数据、更新后的价格作为更新后的特征数据,并添加至新建的业务更新信息中,得到业务更新信息。
在接收到该业务更新信息之后,首先,可以从业务更新信息中提取更新前的特征数据、更新后的特征数据、更新商品和更新商户。例如,在商户将前述第1个商户mct1的第3个商品cmd3的价格从51元更新为63元之后,业务更新信息中提取的更新商户为第1个商户,更新商品为第3个商品,更新前的特征数据为更新前的价格51元,更新后的特征数据为更新后的价格63元。
然后,根据更新前的特征数据确定其满足的筛选项作为第一更新筛选项,并根据更新后的特征数据确定其满足的筛选项作为第二更新筛选项。例如,对于前述商品cmd3,更新前的价格51满足筛选条件为价格40至60的筛选项,即为为第一更新筛选项;更新后的价格63满足筛选条件为价格61至100的筛选项,即为为第二更新筛选项。
最后,将更新商户、更新商品、第一更新筛选项和第二更新筛选项添加至新建的索引更新信息中,并发送至索引管理器,以使索引管理器更新索引。可以理解,将更新商户、更新商品、第一更新筛选项和第二更新筛选项添加至新建的索引更新信息中,即为:将更新商户的标识、将更新商品的标识、第一更新筛选项的标识和第二更新筛选项的标识添加至新建的索引更新信息中。例如,将前述商户mct1的标识1作为更新商户的标识添加至索引更新信息中,将前述商品cmd3的标识3作为更新商品的标识添加至索引更新信息中,将筛选条件为价格40至60的筛选项fid1的标识1作为第一更新筛选项的标识,添加至索引更新信息中,将筛选条件为价格61至100的筛选项fid2的标识2作为第二更新筛选项的标识,添加至索引更新信息中。
步骤d2,将所述更新商户的比特序列中包含的所述第一更新筛选项的比特序列中,所述更新商品的比特位设置为第二基本算符。
在本公开的实施例中,每个商户的比特序列由多个筛选项的比特序列构成,每个筛选项的比特序列由聚类至该商户下的商品对应的比特位构成。例如,存在商户mct1、mct2和mct3,商户mct1提供的商品分别为cmd1、cmd2、cmd3和cmd4,商户mct2提供的商品分别为cmd5、cmd6和cmd7,商户mct3提供的商品分别为cmd8和cmd9,其中,cmd1、cmd2、cmd3、cmd4、cmd5、cmd6、cmd7、cmd8和cmd9的的价格分别为:38、69、51、110、78、120、35、111和91,若筛选项fid1的筛选条件为:商品的价格为40元至60元,筛选项fid2的筛选条件为:商品的价格为61元至100元,则可以得到商户mct1的比特序列为:{0010,0100},其中,0010为筛选项fid1的比特序列,0100为筛选项fid2的比特序列,商户mct2的比特序列为:{001,100},其中,001为筛选项fid1的比特序列,100为筛选项fid2的比特序列,商户mct3的比特序列为:{00,01},其中,00为筛选项fid1的比特序列,01为筛选项fid2的比特序列。
对上述结构的第一更新筛选项的比特序列进行更新时的主要步骤包括:首先,可以根据索引更新信息中的更新商户的标识获取到更新商户的比特序列,例如,对于前述索引更新信息中的更新商户的标识1,读取第1个商户的比特序列:{0010,0100},得到更新商户的比特序列;然后,根据索引更新信息中的第一更新筛选项的标识,从更新商户的比特序列中提取第一更新筛选项的比特序列,例如,对于前述索引更新信息中的第一更新筛选项的标识1,可以从{0010,0100}中提取第1个筛选项的比特序列0010,得到第一更新筛选项的比特序列;最后,将第一更新筛选项的比特序列中更新商品的标识对应的比特位进行更新,例如,对于前述索引更新信息中的更新商品的标识3,可以将0010中的第3个比特位修改为第二基本算符0,得到更新后的第一更新筛选项的比特序列为:0000,更新后的更新商户的比特序列为:{0000,0100}。
步骤d3,将所述更新商户的比特序列中包含的所述第二更新筛选项的比特序列中,所述更新商品的比特位设置为第一基本算符。
基于步骤d2中的比特序列结构,对第二更新筛选项的比特序列进行更新时的主要步骤包括:首先,可以根据索引更新信息中的更新商户的标识获取到更新商户的比特序列,例如,对于前述索引更新信息中的更新商户的标识1,可以读取第1个商户的比特序列:{0000,0100},得到更新商户的比特序列;然后,根据索引更新信息中的第二更新筛选项的标识,从更新商户的比特序列中提取第二更新筛选项的比特序列,例如,对于前述索引更新信息中的第二更新筛选项的标识2,从{0000,0100}中提取第2个筛选项的比特序列0100,得到第二更新筛选项的比特序列;最后,将第二更新筛选项的比特序列中更新商品的标识对应的比特位进行更新,例如,对于前述索引更新信息中的更新商品的标识3,可以将0100中的第3个比特位修改为第一基本算符1,从而更新后的第二更新筛选项的比特序列为:0110,更新后的更新商户的比特序列为:{0000,0110}。
本公开的实施例可以通过索引更新信息的方式实时的更新嵌套结构的比特序列,有助于提高比特序列的准确度。
可选地,在本公开的另一种实施例中,所述步骤104包括子步骤e1至e3:
子步骤e1,根据预设商品数量阈值确定至少一个目标筛选项,所述目标筛选项的商品数量之和小于或等于所述商品数量阈值。
其中,商品数量阈值可以根据实际应用场景设定,例如,100,本公开的实施例对其不加以限制。
子步骤e2,按照所述商品数量对所述目标筛选项进行降序排列,得到筛选项序列。
可以理解,筛选项序列中筛选的商品数量较多的目标筛选项排序靠前,筛选项序列中筛选的商品数量较少的目标筛选项排序靠后。
子步骤e3,生成并展示包含所述筛选项序列的筛选页面。
本公开的实施例可以采用商品数量确定目标筛选项和目标筛选项的排列顺序,以将筛选的商品数量较多的筛选项优先展示,从而可以提高用户选取商品数量较多的筛选项的概率,实现尽可能多的向用户推荐商品。
可选地,在本公开的另一种实施例中,所述商品的特征数据是通过如下步骤离线生成的:
步骤f1,从hive数据库中获取业务数据,并通过spark对所述业务数据按照商品进行mapreduce得到至少一个商品的特征数据。
其中,hive数据库是hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在hadoop中的大规模数据的机制。spark是专为大规模数据处理而设计的快速通用的计算引擎。mapreduce是spark中提供的一种聚合运算。
可以理解,聚合即为将统一商品的数据归类。例如,将同一商品的价格、品类、销量等数据进行归类。
步骤f2,将所述至少一个商品的特征数据存储于tair数据库中。
其中,tair是一种典型的键值对结构的数据库,键值对结构的数据库可以有助于基于索引快速查询。例如,可以根据商品标识直接获取到商品的所有属性:价格、品类、销量等。
本公开的实施例可以离线对业务数据进行聚合并将聚合的商品的特征数据存储至tair数据库中,有助于进一步减小统计多个筛选项的商品数量所消耗的时长。
可选地,在本公开的另一种实施例中,所述筛选项的索引信息预先存储于内存中,所述步骤102包括子步骤g:
子步骤g,从所述内存中读取对应筛选项的索引信息。
由于本公开的索引信息是二进制的索引位构成的,从而其占用的存储空间也较小,可以直接将其存储于内存中,有助于提高索引信息的读取速度,进一步减小统计商品数量所消耗的时长。
综上所述,本公开提供了一种筛选页面生成方法,包括:接收筛选页面请求;响应于所述筛选页面请求,读取对应筛选项的索引信息;所述筛选项的索引信息包括至少一个商品对应的索引位,所述索引位是预先设置的,若所述商品的特征数据满足所述筛选项的筛选条件,则所述商品对应的索引位被设置为关联标识;若所述商品的特征数据不满足所述筛选条件,则所述商品对应的索引位被设置为非关联标识;统计所述筛选项的索引信息中索引位为关联标识的数量,作为所述筛选项的商品数量;生成并展示筛选页面,所述筛选页面包含根据所述商品数量确定的至少一个目标筛选项。本公开通过索引信息直接统计筛选项筛选的商品数量,索引信息是预先根据全量数据生成的,有助于提高商品数量的准确度,减小统计所消耗的时长,减小生成筛选页面的延迟。
参照图2,其示出了在本公开的筛选页面生成装置的结构图,具体如下:
筛选页面请求模块201,用于接收筛选页面请求。
索引信息获取模块202,用于响应于所述筛选页面请求,读取对应筛选项的索引信息;所述筛选项的索引信息包括至少一个商品对应的索引位,所述索引位是预先设置的,若所述商品的特征数据满足所述筛选项的筛选条件,则所述商品对应的索引位被设置为关联标识;若所述商品的特征数据不满足所述筛选条件,则所述商品对应的索引位被设置为非关联标识。
数量统计模块203,用于统计所述筛选项的索引信息中索引位为关联标识的数量,作为所述筛选项的商品数量。
筛选页面展示模块204,用于生成并展示筛选页面,所述筛选页面包含根据所述商品数量确定的至少一个目标筛选项。
可选地,在本公开的另一种实施例中,所述商品的索引位为一个比特位,所述关联标识和所述非关联标识是二进制的两个基本算符,所述关联标识对应的基本算符为第一基本算符,所述非关联标识对应的基本算符为第二基本算符,所述筛选项的索引信息是所述商品的比特位按照预设顺序排列的比特序列,所述数量统计模块203还用于:
统计所述筛选项的比特序列中比特位为所述第一基本算符的数量,作为所述筛选项的商品数量。
可选地,在本公开的另一种实施例中,所述商品的比特位通过如下第一索引更新信息接收模块、第一更新模块和第二更新模块进行更新:
第一索引更新信息接收模块,用于监听索引更新信息队列,并从所述索引更新信息队列中获取索引更新信息,所述索引更新信息包括:更新商品、第一更新筛选项和第二更新筛选项,所述第一更新筛选项是更新前的特征数据满足的筛选条件对应的筛选项,所述第二更新筛选项是更新后的特征数据满足的筛选条件对应的筛选项,所述更新后的特征数据是离线生成的,所述更新商品、所述更新前的特征数据和更新后的特征数据是从业务更新信息中提取的。
第一更新模块,用于将所述第一更新筛选项的比特序列中所述更新商品的比特位设置为第二基本算符。
第二更新模块,用于将所述第二更新筛选项的比特序列中所述更新商品的比特位设置为第一基本算符。
可选地,在本公开的另一种实施例中,所述商品被聚类为至少一个商户中,所述筛选项的比特序列包括至少一个商户的比特序列,每个所述商户的比特序列中包含至少一个所述商品的比特位;所述商品的比特位通过如下第二索引更新信息接收模块、第三更新模块和第四更新模块进行更新进行更新:
第二索引更新信息接收模块,用于监听索引更新信息队列,并从所述索引更新信息队列中获取索引更新信息,所述索引更新信息包括:更新商户、更新商品、第一更新筛选项和第二更新筛选项,所述第一更新筛选项是更新前的特征数据满足的筛选条件对应的筛选项,所述第二更新筛选项是更新后的特征数据满足的筛选条件对应的筛选项,所述更新后的特征数据是离线生成的,所述更新商户、更新商品、所述更新前的特征数据和更新后的特征数据是从业务更新信息中提取的。
第三更新模块,用于将所述第一更新筛选项的比特序列中包含的所述更新商户的比特序列中,所述更新商品的比特位设置为第二基本算符。
第四更新模块,用于将所述第二更新筛选项的比特序列中包含的所述更新商户的比特序列中,所述更新商品的比特位设置为第一基本算符。
可选地,在本公开的另一种实施例中,所述商品被聚类至至少一个商户中,每个所述商户的比特序列包括所述筛选项的比特序列,所述筛选项的比特序列包括被聚类至所述商户的至少一个商品的比特位;所述商品的比特位通过如下第三索引更新信息接收模块、第五更新模块和第六更新模块进行更新:
第三索引更新信息接收模块,用于监听索引更新信息队列,并从所述索引更新信息队列中获取索引更新信息,所述索引更新信息包括:更新商户、更新商品、第一更新筛选项和第二更新筛选项,所述第一更新筛选项是更新前的特征数据满足的筛选条件对应的筛选项,所述第二更新筛选项是更新后的特征数据满足的筛选条件对应的筛选项,所述更新后的特征数据是离线生成的,所述更新商户、所述更新商品、所述更新前的特征数据和更新后的特征数据是从业务更新信息中提取的。
第五更新模块,用于将所述更新商户的比特序列中包含的所述第一更新筛选项的比特序列中,所述更新商品的比特位设置为第二基本算符。
第六更新模块,用于将所述更新商户的比特序列中包含的所述第二更新筛选项的比特序列中,所述更新商品的比特位设置为第一基本算符。
可选地,在本公开的另一种实施例中,所述筛选页面展示模块204包括筛选项确定子模块、筛选项序列生成子模块和筛选页面展示子模块:
筛选项确定子模块,用于根据预设商品数量阈值确定至少一个目标筛选项,所述目标筛选项的商品数量之和小于或等于所述商品数量阈值。
筛选项序列生成子模块,用于按照所述商品数量对所述目标筛选项进行降序排列,得到筛选项序列。
筛选页面展示子模块,用于生成并展示包含所述筛选项序列的筛选页面。
可选地,在本公开的另一种实施例中,所述商品的特征数据是通过如下特征数据生成模块和特征数据存储模块离线生成的:
特征数据生成模块,用于从hive数据库中获取业务数据,并通过spark对所述业务数据按照商品进行mapreduce得到至少一个商品的特征数据。
特征数据存储模块,用于将所述至少一个商品的特征数据存储于tair数据库中。
可选地,在本公开的另一种实施例中,所述筛选项的索引信息预先存储于内存中,所述索引信息获取模块202还用于从所述内存中读取对应筛选项的索引信息。
综上所述,本公开提供了一种筛选页面生成装置,所述装置包括:筛选页面请求模块,用于接收筛选页面请求;索引信息获取模块,用于响应于所述筛选页面请求,读取对应筛选项的索引信息;所述筛选项的索引信息包括至少一个商品对应的索引位,所述索引位是预先设置的,若所述商品的特征数据满足所述筛选项的筛选条件,则所述商品对应的索引位被设置为关联标识;若所述商品的特征数据不满足所述筛选条件,则所述商品对应的索引位被设置为非关联标识;数量统计模块,用于统计所述筛选项的索引信息中索引位为关联标识的数量,作为所述筛选项的商品数量;筛选页面展示模块,用于生成并展示筛选页面,所述筛选页面包含根据所述商品数量确定的至少一个目标筛选项。本公开通过索引信息直接统计筛选项筛选的商品数量,索引信息是预先根据全量数据生成的,有助于提高商品数量的准确度,减小统计所消耗的时长,减小生成筛选页面的延迟。
本公开的装置实施例可以参照方法实施例的详细说明,在此不再赘述。
本公开还提供了一种电子设备,参照图3,包括:处理器301、存储器302以及存储在所述存储器302上并可在所述处理器上运行的计算机程序3021,所述处理器301执行所述程序时实现前述实施例的筛选页面生成方法。
本公开还提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述实施例的筛选页面生成方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本公开也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本公开的内容,并且上面对特定语言所做的描述是为了披露本公开的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本公开的筛选页面生成设备中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本公开进行说明而不是对本公开进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本公开的保护范围之内。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。