CN104951467B - 统计方法及装置 - Google Patents
统计方法及装置 Download PDFInfo
- Publication number
- CN104951467B CN104951467B CN201410123667.0A CN201410123667A CN104951467B CN 104951467 B CN104951467 B CN 104951467B CN 201410123667 A CN201410123667 A CN 201410123667A CN 104951467 B CN104951467 B CN 104951467B
- Authority
- CN
- China
- Prior art keywords
- statistical
- value
- field
- target object
- combined field
- 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
- 238000007619 statistical method Methods 0.000 title claims abstract description 9
- 238000000034 method Methods 0.000 claims description 49
- 238000001914 filtration Methods 0.000 claims description 34
- 230000008569 process Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 7
- 230000009466 transformation Effects 0.000 claims description 7
- 230000003139 buffering effect Effects 0.000 claims 1
- 230000003068 static effect Effects 0.000 abstract 3
- 230000006870 function Effects 0.000 description 34
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种统计方法及装置。本申请实施例通过获取统计信息,所述统计信息中包括过滤条件、统计字段和至少两个分组字段,进而根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值,以及根据所述至少两个分组字段的值,获得所述每个目标对象的组合字段的值,使得能够根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值,实现了对多个指定域的组合进行统计操作,从而提高了SOLR的统计灵活性。
Description
【技术领域】
本申请涉及统计技术,尤其涉及一种统计方法及装置。
【背景技术】
SOLR是一个开源的搜索引擎,不仅提供了比Lucene更好的全文搜索服务,还可以作为海量数据的统计工具。SOLR的底层数据结构,仍然是Lucene的列式文件存储,各个列值在文件中是以数组或链表的形式存在。SOLR的统计组件(StatsComponent)可以分别对这些文件的多个指定域即分组,进行统计操作。
然而,SOLR的统计组件只能对每个指定域单独的进行统计操作,无法对多个指定域的组合进行统计操作,从而导致了SOLR的统计灵活性的降低。
【发明内容】
本申请的多个方面提供一种统计方法及装置,用以提高SOLR的统计灵活性。
本申请的一方面,提供一种统计方法,应用于SOLR中,包括:
获取统计信息,所述统计信息中包括过滤条件、统计字段和至少两个分组字段;
根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值;
根据所述至少两个分组字段的值,获得所述每个目标对象的组合字段的值;
根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值,包括:
根据所述过滤条件,执行查询流程,以获得所述目标对象;其中,所述查询流程包括过滤操作;
根据所述统计字段和所述至少两个分组字段,获得所述目标对象的统计字段的值和至少两个分组字段的值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述查询流程还包括评分操作和排序操作。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述统计信息中还包括所述统计操作的操作标识;所述根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值,包括:
根据每个组合字段的值和所述操作标识,对所述每个目标对象的统计字段的值进行所述统计操作,以获得所述每个组合字段的值所对应的统计值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值之后,还包括:
根据所述每个组合字段的值,获得所述至少两个分组字段的值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值之后,还包括:
对每个统计值进行所述统计操作,获得统计汇总值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值之后,还包括:
将所述统计信息、所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值,存储在缓存中。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,
所述获取统计信息,所述统计信息中包括过滤条件、统计字段和至少两个分组字段之后,还包括:
根据所述统计信息,在所述缓存中进行查找,以获得所存储的所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值;
所述根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值,包括:
若没有获得所述缓存中所存储的所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值,根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值。
本申请的一方面,提供一种统计装置,应用于SOLR中,包括:
获取单元,用于获取统计信息,所述统计信息中包括过滤条件、统计字段和至少两个分组字段;
维度分析单元,用于根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值;
维度变换单元,用于根据所述至少两个分组字段的值,获得所述每个目标对象的组合字段的值;
统计单元,用于根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述维度分析单元,具体用于
根据所述过滤条件,执行查询流程,以获得所述目标对象;其中,所述查询流程包括过滤操作;以及
根据所述统计字段和所述至少两个分组字段,获得所述目标对象的统计字段的值和至少两个分组字段的值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述查询流程还包括评分操作和排序操作。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述统计信息中还包括所述统计操作的操作标识;所述统计单元,具体用于
根据每个组合字段的值和所述操作标识,对所述每个目标对象的统计字段的值进行所述统计操作,以获得所述每个组合字段的值所对应的统计值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述维度变换单元,还用于
根据所述每个组合字段的值,获得所述至少两个分组字段的值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述统计单元,还用于
对每个统计值进行所述统计操作,获得统计汇总值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述装置还包括缓存单元,用于
将所述统计信息、所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值,存储在缓存中。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,
所述获取单元,还用于
根据所述统计信息,在所述缓存中进行查找,以获得所存储的所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值;
所述维度分析单元,具体用于
若所述获取单元没有获得所述缓存中所存储的所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值,根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值。
由上述技术方案可知,本申请实施例通过获取统计信息,所述统计信息中包括过滤条件、统计字段和至少两个分组字段,进而根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值,以及根据所述至少两个分组字段的值,获得所述每个目标对象的组合字段的值,使得能够根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值,实现了对多个指定域的组合进行统计操作,从而提高了SOLR的统计灵活性。
另外,采用本申请提供的技术方案,由于简化了查询流程中所包括的操作,即查询操作中只包括过滤操作,而不包括评分操作和排序操作,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
另外,采用本申请提供的技术方案,由于直接对每个组合字段的值所对应的统计值进行统计操作,获得本次统计的统计汇总值,而不再反复对每个目标对象的统计字段的值执行统计操作,获得本次统计的统计汇总值,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
另外,采用本申请提供的技术方案,由于将统计信息、每个组合字段的值、以及所述每个组合字段的值所对应的统计值,存储在缓存中,使得在所获取的统计信息完全一致的情况下,可以直接从缓存中获取每个组合字段的值所对应的统计值,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
【附图说明】
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的统计方法的流程示意图;
图2为本申请另一实施例提供的统计装置的结构示意图;
图3为本申请另一实施例提供的统计装置的结构示意图。
【具体实施方式】
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本申请一实施例提供的统计方法的流程示意图,应用于SOLR中,如图1所示。
101、获取统计信息,所述统计信息中包括过滤条件、统计字段和至少两个分组字段。
可选地,在本实施例的一个可能的实现方式中,在101中,具体可以接收客户端发送的所述统计信息。
例如,由SOLR现有的请求处理容器(SolrDispatchFilter)负责接收客户端发送的所述统计信息。
102、根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值。
可选地,在本实施例的一个可能的实现方式中,在102中,具体可以根据所述过滤条件,执行查询流程,以获得所述目标对象;其中,所述查询流程包括过滤操作。然后,根据所述统计字段和所述至少两个分组字段,获得所述目标对象的统计字段的值和至少两个分组字段的值。
例如,所述查询流程除了包括过滤操作之外,还可以进一步包括评分操作和排序操作。也就是说,具体可以由SOLR现有的查询组件(QueryComponent)执行完整的查询流程,然后,再由SOLR的结果收集器(StatsDocCollector)执行相应的统计流程。
或者,再例如,所述查询流程可以只包括过滤操作。也就是说,具体可以由SOLR现有的查询组件(QueryComponent)执行简化的查询流程,然后,进而自定义一个用于统计的结果收集器(StatsDocCollector)执行相应的统计流程。这样,由于简化了查询流程中所包括的操作,即查询操作中只包括过滤操作,而不包括评分操作和排序操作,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
103、根据所述至少两个分组字段的值,获得所述每个目标对象的组合字段的值。
可选地,在本实施例的一个可能的实现方式中,在103中,具体可以利用一个自定义的多参数的函数(Multifunction)的具体实例,例如,ConcatFunction操作,将至少两个分组字段的值,转换为一个组合字段的值。其中,转换方法可以采用任何方法,例如,特定字符串的拼接方法,本实施例对此不进行特别限定。
104、根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值。
可选地,在本实施例的一个可能的实现方式中,在104中,具体可以根据每个组合字段的值,对所述每个目标对象的统计字段的值进行预先指定的至少一种统计操作,以获得所述每个组合字段的值所对应的统计值。
例如,可以进行SOLR所支持的全部统计操作,即max函数、min函数、count函数、missing函数、sum函数、avg函数、sqr函数和stddev函数所对应的运算。
或者,再例如,可以进行SOLR所支持的常用的部分统计操作,即max函数、min函数、count函数和sum函数所对应的运算。
可选地,在本实施例的一个可能的实现方式中,在101中,所获取的所述统计信息中还可以进一步包括所述统计操作的操作标识。相应地,在104中,具体可以根据每个组合字段的值和所述操作标识,对所述每个目标对象的统计字段的值进行所述统计操作,以获得所述每个组合字段的值所对应的统计值。这样,通过在统计信息中增加统计操作的操作标识,使得能够根据本次统计的统计需求,有目的的进行统计操作,从而提高了SOLR的统计有效性。
可选地,在本实施例的一个可能的实现方式中,在104之后,还可以进一步根据所述每个组合字段的值,获得所述至少两个分组字段的值。具体地,具体可以执行ConcatFunction操作的逆操作,将一个组合字段的值,转换为至少两个分组字段的值。其中,ConcatFunction操作的逆操作的转换方法可以采用与ConcatFunction操作的转换方法对应的还原方法。这样,就可以根据所述至少两个分组字段的值,以及所述至少两个分组字段的值所对应的统计值,生成统计结果,提供给客户端。
可选地,在本实施例的一个可能的实现方式中,在104之后,还可以进一步对每个统计值进行所述统计操作,获得统计汇总值。这样,由于直接对每个组合字段的值所对应的统计值进行统计操作,获得本次统计的统计汇总值,而不再反复对每个目标对象的统计字段的值执行统计操作,获得本次统计的统计汇总值,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
可选地,在本实施例的一个可能的实现方式中,在104之后,还可以进一步将所述统计信息、所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值,存储在缓存中。
相应地,在101之后,还可以进一步根据所述统计信息,在所述缓存中进行查找,以获得所存储的所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值。
那么,在102中,若没有获得所述缓存中所存储的所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值,则可以继续执行101之后的操作,即根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值。
这样,由于将统计信息、每个组合字段的值、以及所述每个组合字段的值所对应的统计值,存储在缓存中,使得在所获取的统计信息完全一致的情况下,可以直接从缓存中获取每个组合字段的值所对应的统计值,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
为使得本发明实施例提供的方法更加清楚,下面将以SOLR接收客户端发送的超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求即http://localhost:8983/tigo/select?stats=on&q=sku:sku_1*&wt=xml&stats.fiel d=price&f.price.stats.func=sum_max&stats.field=weight&f.weight.stats.func=avg_sqr&stats.pivot=sku,category作为举例。该HTTP请求中包含统计信息,即
过滤条件为sku字段的值为“sku_1*”;
统计字段为price字段和weight字段;
统计操作为price字段为sum函数所对应的运算和max函数所对应的运算,以及weight字段的操作标识为avg函数所对应的运算和sqr函数所对应的运算;
分组字段为sku字段和category字段。
其中,stats=on:表示执行查询流程中所包含的过滤操作之后,立即执行统计流程,即调用SOLR的统计组件(StatsComponent),无需再执行评分操作和排序操作。
SOLR的查询组件(QueryComponent)接收客户端发送的HTTP请求之后,根据统计信息,生成一个带有统计信息的缓存Key对象QueryResultKey,进而判断缓存中是否存在该统计对象。若缓存中存在该统计对象,则可以直接从缓存中取出该统计对象对应的结果对象(StatsValues);若缓存中不存在该统计对象,则可以根据过滤条件,执行查询流程,以获得目标对象,以及调用SOLR的统计组件(StatsComponent)。
自定义的结果收集器(StatsDocCollector)收集查询组件(QueryComponent)所获得的目标对象即文档标识(ID)的集合,初始化统计字段的域缓存(FieldCache),以将统计字段的值放入统计字段的域缓存(FieldCache),以及初始化分组字段的域缓存(FieldCache),以将分组字段的值放入分组字段的域缓存(FieldCache),进而构建由分组字段作为参数的ConcatFunction操作。
结果收集器(StatsDocCollector)利用ConcatFunction操作,获得每个目标对象所对应的唯一的组合字段的值。其中,ConcatFunction操作中所涉及的转换方法可以采用任何方法,例如,特定字符串的拼接方法,本实施例对此不进行特别限定。该值可以作为统计值的Key,目标对象与Key是多对一的关系,即对应每一个Key,会有多条记录。
结果收集器(StatsDocCollector)中的分组统计对象(StatsValueFacet)保存有一个结果对象(StatsValues)的映射关系Map<K,V>。其中,K是所述Key,V是对应于Key的多条记录的某些统计操作的统计值,例如,sum函数所对应的运算等。具体地,当结果收集器(StatsDocCollector)遍历每个目标对象时,分组统计对象(StatsValueFacet)从每个统计字段的域缓存(FieldCache)中取出一个值,与Map中对应该目标对象的K对应的值进行统计操作,以获得统计值V。
结果收集器(StatsDocCollector)遍历每个目标对象完毕之后,可以进一步对每个统计值进行统计操作,获得统计汇总值。
结果收集器(StatsDocCollector)将Map<K,V>存储在缓存中。这样,
下一次有同样的HTTP请求时,直接将其取出。
以上的统计值,或者从缓存中取出的统计值,都是单个组合域(组合维度)的结果对象(StatsValues)即Map<K,V>,还需要进一步执行ConcatFunction操作的逆操作,以实现从组合域K到多个域即k1(sku字段)和k2(category字段)的转换,以获得Map<(k1=v1,k2=v2),V>对象。
至此,单个统计字段的多个域的统计操作执行完毕。
可以理解的是,如果是多个统计字段,那么,最后的统计结果可以为如下二维表格形式的“行式结构”
至此,多个统计字段的多个域组合的统计操作全部执行完毕。
本实施例中,通过获取统计信息,所述统计信息中包括过滤条件、统计字段和至少两个分组字段,进而根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值,以及根据所述至少两个分组字段的值,获得所述每个目标对象的组合字段的值,使得能够根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值,实现了对多个指定域的组合进行统计操作,从而提高了SOLR的统计灵活性。
另外,采用本申请提供的技术方案,由于简化了查询流程中所包括的操作,即查询操作中只包括过滤操作,而不包括评分操作和排序操作,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
另外,采用本申请提供的技术方案,由于直接对每个组合字段的值所对应的统计值进行统计操作,获得本次统计的统计汇总值,而不再反复对每个目标对象的统计字段的值执行统计操作,获得本次统计的统计汇总值,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
另外,采用本申请提供的技术方案,由于将统计信息、每个组合字段的值、以及所述每个组合字段的值所对应的统计值,存储在缓存中,使得在所获取的统计信息完全一致的情况下,可以直接从缓存中获取每个组合字段的值所对应的统计值,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图2为本申请另一实施例提供的统计装置的结构示意图,应用于SOLR,如图2所示。本实施例的统计装置可以包括获取单元21、维度分析单元22、维度变换单元23和统计单元24。其中,
获取单元21,用于获取统计信息,所述统计信息中包括过滤条件、统计字段和至少两个分组字段。
可选地,在本实施例的一个可能的实现方式中,获取单元21具体可以接收客户端发送的所述统计信息。
例如,由SOLR现有的请求处理容器(SolrDispatchFilter)负责接收客户端发送的所述统计信息。
维度分析单元22,用于根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值。
可选地,在本实施例的一个可能的实现方式中,所述维度分析单元22,具体可以用于根据所述过滤条件,执行查询流程,以获得所述目标对象;其中,所述查询流程包括过滤操作;以及根据所述统计字段和所述至少两个分组字段,获得所述目标对象的统计字段的值和至少两个分组字段的值。
例如,所述查询流程除了包括过滤操作之外,还可以进一步包括评分操作和排序操作。也就是说,具体可以由SOLR现有的查询组件(QueryComponent)执行完整的查询流程,然后,再由SOLR的结果收集器(StatsDocCollector)执行相应的统计流程。
或者,再例如,所述查询流程可以只包括过滤操作。也就是说,具体可以由SOLR现有的查询组件(QueryComponent)执行简化的查询流程,然后,进而由自定义一个用于统计的结果收集器(StatsDocCollector)执行相应的统计流程。这样,由于简化了查询流程中所包括的操作,即查询操作中只包括过滤操作,而不包括评分操作和排序操作,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
维度变换单元23,用于根据所述至少两个分组字段的值,获得所述每个目标对象的组合字段的值。
可选地,在本实施例的一个可能的实现方式中,维度变换单元23具体可以利用一个自定义的多参数的函数(Multifunction)的具体实例,例如,ConcatFunction操作,将至少两个分组字段的值,转换为一个组合字段的值。其中,转换方法可以采用任何方法,例如,特定字符串的拼接方法,本实施例对此不进行特别限定。
统计单元24,用于根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值。
可选地,在本实施例的一个可能的实现方式中,所述统计单元24,具体可以用于根据每个组合字段的值,对所述每个目标对象的统计字段的值进行预先指定的至少一种统计操作,以获得所述每个组合字段的值所对应的统计值。
例如,所述统计单元24可以进行SOLR所支持的全部统计操作,即max函数、min函数、count函数、missing函数、sum函数、avg函数、sqr函数和stddev函数所对应的运算。
或者,再例如,所述统计单元24可以进行SOLR所支持的常用的部分统计操作,即max函数、min函数、count函数和sum函数所对应的运算。
可选地,在本实施例的一个可能的实现方式中,获取单元21所获取的所述统计信息中还可以进一步包括所述统计操作的操作标识。相应地,所述统计单元24,具体可以用于根据每个组合字段的值和所述操作标识,对所述每个目标对象的统计字段的值进行所述统计操作,以获得所述每个组合字段的值所对应的统计值。这样,通过在统计信息中增加统计操作的操作标识,使得能够根据本次统计的统计需求,有目的的进行统计操作,从而提高了SOLR的统计有效性。
可选地,在本实施例的一个可能的实现方式中,所述维度变换单元23,还可以进一步用于根据所述每个组合字段的值,获得所述至少两个分组字段的值。具体地,所述维度变换单元23具体可以执行ConcatFunction操作的逆操作,将一个组合字段的值,转换为至少两个分组字段的值。其中,ConcatFunction操作的逆操作的转换方法可以采用与ConcatFunction操作的转换方法对应的还原方法。这样,就可以根据所述至少两个分组字段的值,以及所述至少两个分组字段的值所对应的统计值,生成统计结果,提供给客户端。
可选地,在本实施例的一个可能的实现方式中,所述统计单元24,还可以进一步用于对每个统计值进行所述统计操作,获得统计汇总值。这样,由于直接对每个组合字段的值所对应的统计值进行统计操作,获得本次统计的统计汇总值,而不再反复对每个目标对象的统计字段的值执行统计操作,获得本次统计的统计汇总值,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
可选地,在本实施例的一个可能的实现方式中,如图3所示,本实施例提供的统计装置还可以进一步包括缓存单元31,用于将所述统计信息、所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值,存储在缓存中。
相应地,所述获取单元21,还可以进一步用于根据所述统计信息,在所述缓存中进行查找,以获得所存储的所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值。
那么,所述维度分析单元22,具体用于若所述获取单元21没有获得所述缓存中所存储的所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值,则可以执行对应的操作,即根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值。
这样,由于将统计信息、每个组合字段的值、以及所述每个组合字段的值所对应的统计值,存储在缓存中,使得在所获取的统计信息完全一致的情况下,可以直接从缓存中获取每个组合字段的值所对应的统计值,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
本实施例中,通过获取单元获取统计信息,所述统计信息中包括过滤条件、统计字段和至少两个分组字段,进而由维度分析单元根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值,以及维度变换单元根据所述至少两个分组字段的值,获得所述每个目标对象的组合字段的值,使得统计单元能够根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值,实现了对多个指定域的组合进行统计操作,从而提高了SOLR的统计灵活性。
另外,采用本申请提供的技术方案,由于简化了查询流程中所包括的操作,即查询操作中只包括过滤操作,而不包括评分操作和排序操作,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
另外,采用本申请提供的技术方案,由于直接对每个组合字段的值所对应的统计值进行统计操作,获得本次统计的统计汇总值,而不再反复对每个目标对象的统计字段的值执行统计操作,获得本次统计的统计汇总值,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
另外,采用本申请提供的技术方案,由于将统计信息、每个组合字段的值、以及所述每个组合字段的值所对应的统计值,存储在缓存中,使得在所获取的统计信息完全一致的情况下,可以直接从缓存中获取每个组合字段的值所对应的统计值,因此,能够有效提供SOLR的统计效率,降低SOLR的统计性能消耗。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或页面组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一个计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (14)
1.一种统计方法,应用于SOLR中,其特征在于,包括:
获取统计信息,所述统计信息中包括过滤条件、统计字段和至少两个分组字段;
根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值;
根据所述至少两个分组字段的值,获得每个目标对象的组合字段的值;
根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值;
对每个统计值进行所述统计操作,获得统计汇总值。
2.根据权利要求1所述的方法,其特征在于,所述根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值,包括:
根据所述过滤条件,执行查询流程,以获得所述目标对象;其中,所述查询流程包括过滤操作;
根据所述统计字段和所述至少两个分组字段,获得所述目标对象的统计字段的值和至少两个分组字段的值。
3.根据权利要求2所述的方法,其特征在于,所述查询流程还包括评分操作和排序操作。
4.根据权利要求1所述的方法,其特征在于,所述统计信息中还包括所述统计操作的操作标识;所述根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值,包括:
根据每个组合字段的值和所述操作标识,对所述每个目标对象的统计字段的值进行所述统计操作,以获得所述每个组合字段的值所对应的统计值。
5.根据权利要求1所述的方法,其特征在于,所述根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值之后,还包括:
根据所述每个组合字段的值,获得所述至少两个分组字段的值。
6.根据权利要求1~5任一权利要求所述的方法,其特征在于,所述根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值之后,还包括:
将所述统计信息、所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值,存储在缓存中。
7.根据权利要求6所述的方法,其特征在于,
所述获取统计信息,所述统计信息中包括过滤条件、统计字段和至少两个分组字段之后,还包括:
根据所述统计信息,在所述缓存中进行查找,以获得所存储的所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值;
所述根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值,包括:
若没有获得所述缓存中所存储的所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值,根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值。
8.一种统计装置,应用于SOLR中,其特征在于,包括:
获取单元,用于获取统计信息,所述统计信息中包括过滤条件、统计字段和至少两个分组字段;
维度分析单元,用于根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值;
维度变换单元,用于根据所述至少两个分组字段的值,获得每个目标对象的组合字段的值;
统计单元,用于根据每个组合字段的值,对所述每个目标对象的统计字段的值进行统计操作,以获得所述每个组合字段的值所对应的统计值;
对每个统计值进行所述统计操作,获得统计汇总值。
9.根据权利要求8所述的装置,其特征在于,所述维度分析单元,具体用于
根据所述过滤条件,执行查询流程,以获得所述目标对象;其中,所述查询流程包括过滤操作;以及
根据所述统计字段和所述至少两个分组字段,获得所述目标对象的统计字段的值和至少两个分组字段的值。
10.根据权利要求9所述的装置,其特征在于,所述查询流程还包括评分操作和排序操作。
11.根据权利要求8所述的装置,其特征在于,所述统计信息中还包括所述统计操作的操作标识;所述统计单元,具体用于
根据每个组合字段的值和所述操作标识,对所述每个目标对象的统计字段的值进行所述统计操作,以获得所述每个组合字段的值所对应的统计值。
12.根据权利要求8所述的装置,其特征在于,所述维度变换单元,还用于
根据所述每个组合字段的值,获得所述至少两个分组字段的值。
13.根据权利要求8~12任一权利要求所述的装置,其特征在于,所述装置还包括缓存单元,用于
将所述统计信息、所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值,存储在缓存中。
14.根据权利要求13所述的装置,其特征在于,
所述获取单元,还用于
根据所述统计信息,在所述缓存中进行查找,以获得所存储的所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值;
所述维度分析单元,具体用于
若所述获取单元没有获得所述缓存中所存储的所述每个组合字段的值、以及所述每个组合字段的值所对应的统计值,根据所述统计信息,获得目标对象的统计字段的值和至少两个分组字段的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410123667.0A CN104951467B (zh) | 2014-03-28 | 2014-03-28 | 统计方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410123667.0A CN104951467B (zh) | 2014-03-28 | 2014-03-28 | 统计方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104951467A CN104951467A (zh) | 2015-09-30 |
CN104951467B true CN104951467B (zh) | 2019-04-30 |
Family
ID=54166130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410123667.0A Active CN104951467B (zh) | 2014-03-28 | 2014-03-28 | 统计方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104951467B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897280B (zh) * | 2015-12-17 | 2020-07-14 | 菜鸟智能物流控股有限公司 | 数据查询方法及装置 |
CN106933923B (zh) * | 2015-12-31 | 2020-04-21 | 北京国双科技有限公司 | 筛选会话的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049296A (zh) * | 2012-12-28 | 2013-04-17 | 北界创想(北京)软件有限公司 | 为下载设备自动匹配目标应用的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120304247A1 (en) * | 2011-05-25 | 2012-11-29 | John Badger | System and process for hierarchical tagging with permissions |
US20140025626A1 (en) * | 2012-04-19 | 2014-01-23 | Avalon Consulting, LLC | Method of using search engine facet indexes to enable search-enhanced business intelligence analysis |
-
2014
- 2014-03-28 CN CN201410123667.0A patent/CN104951467B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049296A (zh) * | 2012-12-28 | 2013-04-17 | 北界创想(北京)软件有限公司 | 为下载设备自动匹配目标应用的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104951467A (zh) | 2015-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113360554B (zh) | 一种数据抽取、转换和加载etl的方法和设备 | |
CN103703467B (zh) | 存储数据的方法和装置 | |
CN107861981B (zh) | 一种数据处理方法及装置 | |
US20160162793A1 (en) | Method and apparatus for decision tree based search result ranking | |
US10216848B2 (en) | Method and system for recommending cloud websites based on terminal access statistics | |
CN107515878B (zh) | 一种数据索引的管理方法及装置 | |
JP6148732B2 (ja) | データインデックス化方法及び装置 | |
CN105493085B (zh) | 创建数据库表的样本的方法、系统和计算机可读存储介质 | |
WO2015050567A1 (en) | System and method for performing set operations with defined sketch accuracy distribution | |
CN108073625A (zh) | 用于元数据信息管理的系统及方法 | |
CN105224534A (zh) | 一种请求响应的方法及装置 | |
KR102476126B1 (ko) | 고속 분석을 위한 네트워크 트래픽 준비 시스템 | |
CN108009147B (zh) | 电子书封面生成方法、电子设备及计算机存储介质 | |
CN110347888B (zh) | 订单数据的处理方法、装置及存储介质 | |
CN109977135A (zh) | 一种数据查询方法、装置及服务器 | |
CN106649800A (zh) | 一种基于Solr的中文检索方法 | |
CN105389482B (zh) | 一种基于云平台的大数据分析方法 | |
CN104951467B (zh) | 统计方法及装置 | |
CN107748772B (zh) | 一种商标识别方法及装置 | |
CN104881475A (zh) | 一种用于大数据随机抽样的方法和系统 | |
CN106933907B (zh) | 数据表扩展指标的处理方法及装置 | |
CN108664492A (zh) | 一种向用户推送内容的方法、装置、电子设备和存储介质 | |
CN107515916B (zh) | 数据查询的性能优化方法及装置 | |
CN105872731A (zh) | 数据处理的方法和装置 | |
CN106844406B (zh) | 检索方法和检索装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211126 Address after: No. 699, Wangshang Road, Binjiang District, Hangzhou, Zhejiang Patentee after: Alibaba (China) Network Technology Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |
|
TR01 | Transfer of patent right |