CN111552715B - 用户查询方法和装置 - Google Patents
用户查询方法和装置 Download PDFInfo
- Publication number
- CN111552715B CN111552715B CN202010371906.XA CN202010371906A CN111552715B CN 111552715 B CN111552715 B CN 111552715B CN 202010371906 A CN202010371906 A CN 202010371906A CN 111552715 B CN111552715 B CN 111552715B
- Authority
- CN
- China
- Prior art keywords
- user
- attribute information
- query
- user set
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004590 computer program Methods 0.000 claims description 9
- 230000000007 visual effect Effects 0.000 claims description 8
- 230000002776 aggregation Effects 0.000 claims description 6
- 238000004220 aggregation Methods 0.000 claims description 6
- 230000002452 interceptive effect Effects 0.000 claims description 6
- 230000004931 aggregating effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000012216 screening Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例公开了用户查询方法和装置。该方法的一具体实施方式包括:接收包括目标属性信息的查询请求,其中,目标属性信息用于表征请求查询的用户的属性和该属性的属性值;根据预设的、属性信息与用户集之间的对应关系,获取与目标属性信息对应的用户集作为查询结果;展示查询结果。该实施方式有助于提升查询效率。
Description
技术领域
本公开的实施例涉及计算机技术领域,具体涉及用户查询方法和装置。
背景技术
根据用户的历史行为路径、行为特征、用户偏好等各种用户属性,可以将具有相同属性的用户划分为一个群体,进而针对每个用户群体进行服务(如信息推送等)等是现有的许多应用或产品常用的运营方式之一。
目前,通常是利用数据表对用户属性进行存储。具体地,数据表中的每行对应一个用户,同时,数据表中的每列对应一种用户属性。基于这种存储方式,在进行用户群体划分时,通常需要根据指定的属性和属性值对数据表进行筛选,以确定指定的属性和属性值对应的用户群。
发明内容
本公开的实施例提出了用户查询方法和装置。
第一方面,本公开的实施例提供了一种用户查询方法,该方法包括:接收包括目标属性信息的查询请求,其中,目标属性信息用于表征请求查询的用户的属性和该属性的属性值;根据预设的、属性信息与用户集之间的对应关系,获取与目标属性信息对应的用户集作为查询结果;展示查询结果。
在一些实施例中,查询请求包括至少两个目标属性信息和用于表征各个目标属性信息之间的逻辑关系的逻辑信息。
在一些实施例中,根据预设的、属性信息与用户集之间的对应关系,获取与目标属性信息对应的用户集作为查询结果,包括:获取各个目标属性信息分别对应的用户集,得到至少两个用户集;根据逻辑信息,对至少两个用户集进行逻辑信息对应的集合运算,得到运算结果作为查询结果。
在一些实施例中,属性信息与用户集之间的对应关系利用位图算法Bitmap进行存储。
在一些实施例中,属性信息与用户集之间的对应关系通过如下步骤进行构建:获取目标用户集中的各用户分别对应的属性信息集;根据获取的属性信息集,对目标用户集中的用户进行聚合,以使对应相同属性信息的用户组成该属性信息对应的用户集。
在一些实施例中,属性信息与用户集之间的对应关系通过如下方式利用位图算法Bitmap进行存储:对于通过聚合得到的每个用户集,构建该用户集对应的数据序列,其中,数据序列中的各个数据位与目标用户集中的用户一一对应,数据序列中的每个数据位的值用于表示该数据位对应的用户是否属于该用户集;存储该用户集对应的属性信息与数据序列之间的对应关系。
在一些实施例中,用户集中的用户的用户标识采用整数进行表示。
第二方面,本公开的实施例提供了一种用户查询装置,该装置包括:接收单元,被配置成接收包括目标属性信息的查询请求,其中,目标属性信息用于表征请求查询的用户的属性和该属性的属性值;查询单元,被配置成根据预设的、属性信息与用户集之间的对应关系,获取与目标属性信息对应的用户集作为查询结果;展示单元,被配置成展示查询结果。
在一些实施例中,查询请求包括至少两个目标属性信息和用于表征各个目标属性信息之间的逻辑关系的逻辑信息。
在一些实施例中,上述查询单元进一步被配置成获取各个目标属性信息分别对应的用户集,得到至少两个用户集;根据逻辑信息,对至少两个用户集进行逻辑信息对应的集合运算,得到运算结果作为查询结果。
在一些实施例中,属性信息与用户集之间的对应关系利用位图算法Bitmap进行存储。
在一些实施例中,属性信息与用户集之间的对应关系通过如下步骤进行构建:获取目标用户集中的各用户分别对应的属性信息集;根据获取的属性信息集,对目标用户集中的用户进行聚合,以使对应相同属性信息的用户组成该属性信息对应的用户集。
在一些实施例中,属性信息与用户集之间的对应关系通过如下方式利用位图算法Bitmap进行存储:对于通过聚合得到的每个用户集,构建该用户集对应的数据序列,其中,数据序列中的各个数据位与目标用户集中的用户一一对应,数据序列中的每个数据位的值用于表示该数据位对应的用户是否属于该用户集;存储该用户集对应的属性信息与数据序列之间的对应关系。
在一些实施例中,用户集中的用户的用户标识采用整数进行表示。
第三方面,本公开的实施例提供了一种服务器,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本公开的实施例提供的用户查询方法和装置,通过预先存储属性信息与用户集之间的对应关系,且属性信息包括用户的属性和用户针对该属性的属性值,从而在接收到指示请求查询用户的目标属性信息的查询请求时,可以直接根据目标属性信息获取对应的用户集以得到查询结果,从而提升查询效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本公开的用户查询方法的一个实施例的流程图;
图3是根据本公开的用户查询方法的又一个实施例的流程图;
图4是根据本公开的实施例的用户查询方法的一个应用场景的示意图;
图5是根据本公开的用户查询装置的一个实施例的结构示意图;
图6是适于用来实现本公开的实施例的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了可以应用本公开的用户查询方法或用户查询装置的实施例的示例性架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种客户端应用。例如,搜索类应用、浏览器类应用、购物类应用、社交平台软件、即时通信类应用、信息流类应用、数据处理类应用等等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如为终端设备101、102、103发送的查询请求进行响应的后端服务器。服务器可以对根据终端设备101、102、103发送的查询请求所指示的目标属性信息,从预设的属性信息与用户集之间的对应关系中获取与目标属性信息对应的用户集作为查询结果,并返回查询结果,以使终端设备101、102、103对查询结果进行展示。
需要说明的是,上述查询请求也可以由服务器105的用户使用服务器105发送。此时,服务器105同样可以根据接收到的查询请求进行响应以向用户展示查询结果。此时,可以不存在终端设备101、102、103和网络104。
需要说明的是,本公开的实施例所提供的用户查询方法一般由服务器105执行,相应地,用户查询装置一般设置于服务器105中。
还需要指出的是,终端设备101、102、103中也可以安装有数据处理类应用,终端设备101、102、103也可以基于数据处理类应用对用户发送的查询请求进行响应,以向用户展示查询结果。此时,用户查询方法也可以由终端设备101、102、103执行,相应地,用户查询装置也可以设置于终端设备101、102、103中。此时,示例性系统架构100可以不存在服务器105和网络104。
需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,其示出了根据本公开的用户查询方法的一个实施例的流程200。该用户查询方法包括以下步骤:
步骤201,接收包括目标属性信息的查询请求。
在本实施例中,用户查询方法的执行主体(如图1所示的服务器)可以接收客户端(如图1所示的终端设备101、102、103)等发送的查询请求。其中,查询请求可以用于请求查询用户。
查询请求可以包括目标属性信息。其中,属性信息可以用于表征用户的属性和用户针对该属性的属性值。目标属性信息即可以用于表征查询请求所期望查询的用户的属性和所期望查询的用户针对该属性的属性值。
作为示例,属性信息可以用于指示属性“城市”和属性值“北京”。此时,查询请求可以用于指示查询对应的城市在北京的用户。
步骤202,根据预设的、属性信息与用户集之间的对应关系,获取与目标属性信息对应的用户集作为查询结果。
在本实施例中,可以预先设置属性信息与用户集之间的对应关系。其中,对于一用户集,该用户集中的用户具有相同的属性信息,即该用户集对应的属性信息。换言之,针对该用户集对应的属性信息指示的属性,该用户集中的用户针对该属性的属性值相同。
因此,可以在预先设置属性信息与用户集之间的对应关系中查询与目标属性信息对应的用户集作为上述查询请求对应的查询结果。
步骤203,展示查询结果。
在本实施例中,上述执行主体在得到查询结果之后,可以进一步向发送查询请求的终端返回查询结果,以使发送查询请求的终端可以对查询结果进行展示。
可选地,上述执行主体可以向客户端提供交互式可视化查询界面。此时,客户端的用户可以在查询界面上输入目标属性信息并发送查询请求。上述执行主体可以向客户端返回查询结果,以使客户端向用户展示查询结果。由此,借助交互式可视化查询界面,可以更便捷地实现用户查询。
在本实施例的一些可选的实现方式中,预设的属性信息与用户集之间的对应关系可以利用位图算法Bitmap进行存储。其中,Bitmap通常是用一个Bit位来标记某个元素对应的值(Value),而该元素对应的键(Key)即是该元素。
此时,一个属性信息可以对应一个Bitmap结构。在Bitmap结构中,每一位可以对应于该属性信息对应的用户集中的一个用户,每一位的值可以为该位对应的用户针对该属性信息指示的属性的属性值。
由于Bitmap采用以Bit为单位存储数据,因此,利用Bitmap实现属性信息与用户集之间的对应关系的存储可以节省存储空间。
另外,现有技术中,通常是以每个用户对应一个数据行,以及每个属性对应一个数据列的方式构建数据表以存储用户的属性信息。这种方式在查询用户时,需要先根据指定的属性筛选对应的列,然后根据指定的属性值对数据行进行筛选。因此,随着数据表的数据行和列的增加,查询效率会变的非常慢。而且,由于每个属性都对应单独一个列,在每增加一个属性时,都需要重新修改数据表的定义,并重新构建数据表,因此,这种方式下数据的扩展性也比较差。
而利用Bitmap实现属性信息与用户集之间的对应关系的存储时,例如采用数据行存储属性信息与用户集之间的对应关系。在查询时,可以直接对行进行筛选,就可以得到目标属性信息对应的用户集,从而得到查询结果,不需要对数据表中的行和列都进行筛选的过程,极大地提升了查询效率。而且,在每增加一个属性时,新增加指示该属性的属性信息与用户集之间的对应关系即可,即新增一个数据行,而不需要重新修改数据表的定义,也不需要重新构建数据表,便于数据的扩展。
在本实施的一些可选地实现方式中,预设的属性信息与用户集之间的对应关系通过如下步骤进行构建:
步骤一,获取目标用户集中的各用户分别对应的属性信息集。
在本步骤中,目标用户集可以根据实际的应用需求确定。例如,目标用户集可以是某客户端应用的所有使用用户组成的用户集。每个用户对应的属性信息集可以由该用户对应的若干属性信息组成。其中,用户对应的属性信息可以用于指示用户的某个属性和用户针对该属性的属性值。
目标用户集中的各用户分别对应的属性信息集可以从各种存储设备、数据平台、数据库等获取。例如,可以由安装有上述客户端应用的客户端采集各用户分别对应的属性信息集。
作为示例,一用户对应的属性信息集包括第一属性信息、第二属性信息和第三属性信息。其中,第一属性信息可以用于指示属性“性别”和属性值“女”,第二属性信息可以用于指示属性“城市”和属性值“北京”,第三属性信息可以用于指示属性“使用的操作系统”和属性值“Android”。
步骤二,根据获取的属性信息集,对目标用户集中的用户进行聚合,以使对应相同属性信息的用户组成该属性信息对应的用户集。
在本步骤中,可以利用现有的各种数据聚合方法对目标用户集中的用户进行聚合,以得到若干用户集。每个用户集对应一个属性信息。
作为示例,可以从目标用户集中选取性别为女的用户组成上述第一属性信息对应的用户集,可以从目标用户集中选取所在的城市为北京的用户组成上述第二属性信息对应的用户集,可以从目标用户集中选取所使用的操作系统为Android的用户组成上述第三属性信息对应的用户集。
由此可以快速构建属性信息与用户集之间的对应关系,进而便于基于Bitmap实现属性信息与用户集之间的对应关系的存储。
可选地,可以通过如下方式利用Bitmap实现属性信息与用户集之间的对应关系的存储:对于通过聚合得到的每个用户集,构建该用户集对应的数据序列,以及存储该用户集对应的属性信息与数据序列之间的对应关系。
其中,数据序列中的各个数据位与目标用户集中的用户一一对应。即一个数据位对应一个用户。例如,可以设置数据序列中的各个数据位与用户的用户标识之间的对应关系。
数据序列中的每个数据位的值可以用于表示该数据位对应的用户是否属于该用户集。以该用户集对应的属性信息指示的属性为第一属性,以该用户集对应的属性信息指示的属性值为第一属性值,若用户属于该用户集,则可以表征该数据位对应的用户针对第一属性的属性值为第一属性值。若用户不属于该用户集,则可以表征该数据位对应的用户针对第一属性的属性值与第一属性值不同。
需要说明的是,数据序列可以由一系列具有顺序关系的数据组成。数据序列的存储方式可以根据实际的应用需求和不同的应用场景灵活确定。例如,可以通过数组的方式存储数据序列。此时,每个数组的下标可以对应一个用户。
用户标识可以使用各种可以唯一标识用户的信息。例如,用户标识可以采用用户的账号名称作为用户标识。
可选地,用户标识可以采用整数进行表示。此时,对于每个用户集对应的数据序列,可以设置数据序列中的各数据位的位数与用户标识一一对应。例如,第一用户的用户标识可以为“1”,数据序列中的第一个数据位就可以对应第一用户。第二用户的用户标识可以为“2”,数据序列中的第二个数据位就可以对应第二用户,并以此类推。
由于通常采用如字符串等表示用户标识。此时,可以利用现有的一些数据转换方法将用户标识转换成对应的整数进行表示,从而得到使用整数表示的用户标识。由此,可以进一步节省存储空间,提升查询速度。
可选地,在得到查询结果之后,还可以根据实际的应用需求进一步根据查询结果向查询结果所指示的用户群进行信息推送等,以实现对查询结果所指示的用户群中的用户提供更精准地服务。
本公开的上述实施例提供的用户查询方法通过存储属性信息和用户集之间的对应关系,每个属性信息可以指示用户的一个属性和用户针对该属性的属性值。基于此,在接收到用于查询用户的查询请求时,可以直接根据查询请求指示的目标属性信息,查询目标属性信息对应的用户集作为查询结果,从而大大提升查询速度。同时,这种方式也便于之后对用户数据的扩展。
进一步参考图3,其示出了用户查询方法的又一个实施例的流程300。该用户查询方法的流程300,包括以下步骤:
步骤301,接收包括至少两个目标属性信息和用于表征各个目标属性信息之间的逻辑关系的逻辑信息的查询请求。
在本实施例中,各个目标属性信息之间的逻辑关系可以用于表征各个目标属性信息分别对应的用户集之间的逻辑关系。逻辑关系包括但不限于:或、且、非等等。
步骤302,获取各个目标属性信息分别对应的用户集,得到至少两个用户集。
步骤303,根据逻辑信息,对得到的至少两个用户集进行逻辑信息对应的集合运算,得到运算结果作为查询结果。
在本实施例中,不同用户集之间的逻辑关系可以转化成不同用户集之间的集合运算。
应当可以理解,逻辑关系“或”可以转化成计算不同用户集之间的并集运算。逻辑关系“且”可以转化成计算不同用户集之间的交集。逻辑关系“非”可以转化成计算用户集的补集。
作为示例,第一属性信息对应第一用户集,第二属性信息对应第二用户集,第三属性信息对应第三用户集。若查询请求的属性信息之间的逻辑关系包括第一属性信息或第二属性信息且第三属性信息。此时,根据查询请求,可以计算第一用户集与第二用户集的并集,然后计算得到的并集与第三用户集之间的交集。
步骤304,展示查询结果。
上述步骤301-304中未详细说明的内容的具体的执行过程可参考图2对应实施例中的步骤201-203的相关说明,在此不再赘述。
可选地,查询请求还可以包括用于指示目标属性信息对应的时间的时间信息。例如,查询请求包括城市为北京,且时间为历史一周内。此时,查询请求可以用于请求查询历史一周内所在的城市为北京的用户。
应当可以理解,根据实际的应用需求和不同的应用场景,可以灵活的设置查询请求包括的各种信息,以实现更灵活地查询。
继续参见图4,图4是根据本实施例的用户查询方法的应用场景的一个示意图400。在图4的应用场景中,用户可以通过终端401输入查询条件包括:城市为北京的用户群,且,性别为女的用户群,或,或操作系统为Android的用户群。同时,终端401可以将用户输入的查询条件对应的查询请求发送至服务器402。
服务器402可以预先获取各个用户的用户数据。如图中标号403所示,用户1的城市为北京,性别为女,所使用的操作系统为Android。用户2的城市为北京,性别为男,所使用的操作系统为IOS。用户3的城市为北京,性别为女,所使用的操作系统为Android。
服务器402还可以预先针对每对属性和属性值建立对应的bitmap。服务器402可以通过数组存储各对属性和属性值对应的用户群,数组的下标分别与用户1、用户2、和用户3一一对应,数组的元素用于表示对应的用户的属性值。以城市为北京这一对属性和属性值作为示例,数组的第一个元素可以对应用户1,数组的第二个元素可以对应用户2,数组的第三个元素可以对应用户3。数组的第一个元素为1表示用户1的城市为北京。数组的第二个元素为1表示用户2的城市为北京。数组的第三个元素表示用户3的城市为北京。
服务器402根据查询请求,先查询城市为北京对应的用户群“A”包括用户1、用户2和用户3,性别为女对应的用户群“B”包括用户1和用户3,使用的操作系统为Android的用户群“C”包括用户1和用户3。
然后,服务器402可以根据查询请求指示的各用户群之间的逻辑关系,可以先计算用户群“A”与用户群“B”的交集包括用户1和用户3,然后计算得到的交集与用户群“C”的并集包括用户1和用户3。之后,可以将包括用户1和用户3的用户集作为查询结果返回至终端401,以使终端401向用户展示查询结果。
本公开的上述实施例提供的方法在接收到指示多个目标属性信息和不同目标属性信息之间的逻辑关系的查询请求时,可以通过查询多个目标属性信息分别对应的用户集,并将不同目标属性信息之间的逻辑关系转化成多个目标属性信息分别对应的用户集之间的集合运算,将集合运算结果作为查询结果返回。由此,可以便于快速地进行各种复杂的用户筛选,提升用户筛选的便利性,从而提升查询速度。
进一步参考图5,作为对上述各图所示方法的实现,本公开提供了用户查询装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例提供的用户查询装置500包括接收单元501、查询单元502和展示单元503。其中,接收单元501被配置成接收包括目标属性信息的查询请求,其中,目标属性信息用于表征请求查询的用户的属性和该属性的属性值;查询单元502被配置成根据预设的、属性信息与用户集之间的对应关系,获取与目标属性信息对应的用户集作为查询结果;展示单元503被配置成展示查询结果。
在本实施例中,用户查询装置500中:接收单元501、查询单元502和展示单元503的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201、步骤202和步骤203的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,查询请求包括至少两个目标属性信息和用于表征各个目标属性信息之间的逻辑关系的逻辑信息。
在本实施例的一些可选的实现方式中,上述查询单元502进一步被配置成获取各个目标属性信息分别对应的用户集,得到至少两个用户集;根据逻辑信息,对至少两个用户集进行逻辑信息对应的集合运算,得到运算结果作为查询结果。
在本实施例的一些可选的实现方式中,属性信息与用户集之间的对应关系利用位图算法Bitmap进行存储。
在本实施例的一些可选的实现方式中,属性信息与用户集之间的对应关系通过如下步骤进行构建:获取目标用户集中的各用户分别对应的属性信息集;根据获取的属性信息集,对目标用户集中的用户进行聚合,以使对应相同属性信息的用户组成该属性信息对应的用户集。
在本实施例的一些可选的实现方式中,属性信息与用户集之间的对应关系通过如下方式利用位图算法Bitmap进行存储:对于通过聚合得到的每个用户集,构建该用户集对应的数据序列,其中,数据序列中的各个数据位与目标用户集中的用户一一对应,数据序列中的每个数据位的值用于表示该数据位对应的用户是否属于该用户集;存储该用户集对应的属性信息与数据序列之间的对应关系。
在本实施例的一些可选的实现方式中,用户集中的用户的用户标识采用整数进行表示。
本公开的上述实施例提供的装置,通过接收单元接收包括目标属性信息的查询请求,其中,目标属性信息用于表征请求查询的用户的属性和该属性的属性值;查询单元根据预设的、属性信息与用户集之间的对应关系,获取与目标属性信息对应的用户集作为查询结果;展示单元展示查询结果。由此,可以有效地提升查询速度,同时保证数据的可扩展性。
下面参考图6,其示出了适于用来实现本公开的实施例的电子设备(例如图1中的服务器)600的结构示意图。图6示出的服务器仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开的实施例的方法中限定的上述功能。
需要说明的是,本公开的实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述服务器中所包含的;也可以是单独存在,而未装配入该服务器中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该服务器执行时,使得该服务器:接收包括目标属性信息的查询请求,其中,目标属性信息用于表征请求查询的用户的属性和该属性的属性值;根据预设的、属性信息与用户集之间的对应关系,获取与目标属性信息对应的用户集作为查询结果;展示查询结果。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、查询单元和展示单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“接收包括目标属性信息的查询请求的单元”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (9)
1.一种用户查询方法,包括:
利用交互式可视化查询界面接收包括目标属性信息的查询请求,其中,所述目标属性信息用于表征请求查询的用户的属性和该属性的属性值,所述查询请求还包括所述目标属性信息对应的时间的时间信息,所述查询请求由用户在所述可视化查询界面上输入目标属性信息发送;
根据预设的属性信息与用户集之间的对应关系,获取与所述目标属性信息对应的用户集作为查询结果;
在所述交互式可视化查询界面上展示所述查询结果;
其中,所述属性信息与用户集之间的对应关系利用位图算法Bitmap进行存储,以确定每个用户集对应的数据序列,所述数据序列通过数组的方式进行存储,数据序列中各数据位的位数分别作为对应用户的用户标识。
2.根据权利要求1所述的方法,其中,所述查询请求包括至少两个目标属性信息和用于表征各个目标属性信息之间的逻辑关系的逻辑信息。
3.根据权利要求2所述的方法,其中,所述根据预设的属性信息与用户集之间的对应关系,获取与所述目标属性信息对应的用户集作为查询结果,包括:
获取所述各个目标属性信息分别对应的用户集,得到至少两个用户集;
根据所述逻辑信息,对所述至少两个用户集进行所述逻辑信息对应的集合运算,得到运算结果作为查询结果。
4.根据权利要求1所述的方法,其中,所述属性信息与用户集之间的对应关系通过如下步骤进行构建:
获取目标用户集中的各用户分别对应的属性信息集;
根据获取的属性信息集,对所述目标用户集中的用户进行聚合,以使对应相同属性信息的用户组成该属性信息对应的用户集。
5.根据权利要求4所述的方法,其中,所述属性信息与用户集之间的对应关系通过如下方式利用位图算法Bitmap进行存储:
对于通过聚合得到的每个用户集,构建该用户集对应的数据序列,其中,所述数据序列中的各个数据位与所述目标用户集中的用户一一对应,所述数据序列中的每个数据位的值用于表示该数据位对应的用户是否属于该用户集;
存储该用户集对应的属性信息与所述数据序列之间的对应关系。
6.根据权利要求1-5之一所述的方法,其中,所述用户集中的用户的用户标识采用整数进行表示。
7.一种用户查询装置,其中,所述装置包括:
接收单元,被配置成利用交互式可视化查询界面接收包括目标属性信息的查询请求,其中,所述目标属性信息用于表征请求查询的用户的属性和该属性的属性值,所述查询请求还包括所述目标属性信息对应的时间的时间信息,所述查询请求由用户在所述可视化查询界面上输入目标属性信息发送;
查询单元,被配置成根据预设的属性信息与用户集之间的对应关系,获取与所述目标属性信息对应的用户集作为查询结果;
展示单元,被配置成在所述交互式可视化查询界面上展示所述查询结果;
其中,所述属性信息与用户集之间的对应关系利用位图算法Bitmap进行存储,以确定每个用户集对应的数据序列,所述数据序列通过数组的方式进行存储,数据序列中各数据位的位数分别作为对应用户的用户标识。
8.一种服务器,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
9.一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010371906.XA CN111552715B (zh) | 2020-05-06 | 2020-05-06 | 用户查询方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010371906.XA CN111552715B (zh) | 2020-05-06 | 2020-05-06 | 用户查询方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111552715A CN111552715A (zh) | 2020-08-18 |
CN111552715B true CN111552715B (zh) | 2023-11-17 |
Family
ID=71998455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010371906.XA Active CN111552715B (zh) | 2020-05-06 | 2020-05-06 | 用户查询方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552715B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113849531B (zh) * | 2021-09-23 | 2024-03-22 | 北京百度网讯科技有限公司 | 查询方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488125A (zh) * | 2015-11-24 | 2016-04-13 | 百度在线网络技术(北京)有限公司 | 页面访问方法和装置 |
CN108733681A (zh) * | 2017-04-14 | 2018-11-02 | 华为技术有限公司 | 信息处理方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216894B (zh) * | 2013-05-31 | 2017-07-14 | 国际商业机器公司 | 用于数据查询的方法和系统 |
CN103678556B (zh) * | 2013-12-06 | 2017-10-10 | 华为技术有限公司 | 列式数据库处理的方法和处理设备 |
EP3289484B1 (en) * | 2015-04-30 | 2023-07-12 | Parstream GmbH | Method and database computer system for performing a database query using a bitmap index |
CN106959965B (zh) * | 2016-01-12 | 2021-02-05 | 腾讯科技(北京)有限公司 | 一种信息处理方法及服务器 |
US10831843B2 (en) * | 2017-11-01 | 2020-11-10 | International Business Machines Corporation | Grouping aggregation with filtering aggregation query processing |
CN108205593A (zh) * | 2017-12-29 | 2018-06-26 | 华为技术有限公司 | 一种查询的方法及装置 |
-
2020
- 2020-05-06 CN CN202010371906.XA patent/CN111552715B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488125A (zh) * | 2015-11-24 | 2016-04-13 | 百度在线网络技术(北京)有限公司 | 页面访问方法和装置 |
CN108733681A (zh) * | 2017-04-14 | 2018-11-02 | 华为技术有限公司 | 信息处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111552715A (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108846753B (zh) | 用于处理数据的方法和装置 | |
CN108897874B (zh) | 用于处理数据的方法和装置 | |
US20200193372A1 (en) | Information processing method and apparatus | |
US11244153B2 (en) | Method and apparatus for processing information | |
CN109446384B (zh) | 用于生成人员组织架构信息的方法和系统 | |
CN115168362A (zh) | 数据处理方法、装置、可读介质及电子设备 | |
CN109885564B (zh) | 用于发送信息的方法和装置 | |
CN111241137A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111552715B (zh) | 用户查询方法和装置 | |
CN111488386B (zh) | 数据查询方法和装置 | |
CN113918659A (zh) | 数据操作方法、装置、存储介质及电子设备 | |
CN116188622B (zh) | 电力指标信息展示方法、装置、电子设备和计算机介质 | |
CN109271224B (zh) | 用于确定位置的方法和设备 | |
CN111787041A (zh) | 用于处理数据的方法和装置 | |
CN113157695B (zh) | 数据处理方法、装置、可读介质及电子设备 | |
CN112507676B (zh) | 能源报表生成方法、装置、电子设备和计算机可读介质 | |
CN112100211B (zh) | 数据存储方法、装置、电子设备和计算机可读介质 | |
CN111338621B (zh) | 显示数据方法、装置、电子设备和计算机可读介质 | |
CN115034175A (zh) | 表格数据处理方法、装置、终端和存储介质 | |
CN113393288A (zh) | 订单处理信息生成方法、装置、设备和计算机可读介质 | |
CN113722315A (zh) | 数据生成方法、装置、电子设备和计算机可读介质 | |
CN113255290A (zh) | 电力项目信息展示方法、设备和计算机可读介质 | |
CN113435960A (zh) | 虚拟物品显示方法、装置、电子设备和计算机可读介质 | |
CN109308299B (zh) | 用于搜索信息的方法和装置 | |
WO2020078049A1 (zh) | 用户信息处理方法和装置、服务器及可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |