【问题标题】:SOLR: Range query with sumSOLR:带总和的范围查询
【发布时间】:2012-05-15 15:03:22
【问题描述】:

我有一个示例架构,例如:

id:1,date:2012-05-01,parent:p1
id:1,date:2012-05-01,parent:p2
id:1,date:2012-05-01,parent:p3
id:1,date:2012-05-02,parent:p1
id:1,date:2012-05-02,parent:p4

我想对“日期”进行范围查询,并了解每天有多少新的/唯一的父母。换句话说,我想看看随着时间的推移增加了多少新父母。对于给定的数据,输出应如下所示:

2012-04-31:0 (no parents existed an that time)
2012-05-01:3 (because three new parents occured at 2012-05-01: p1,p2,p3) 
2012-05-02:4 (which is 3 parents from 2012-05-01 and 1 new unique parent p4 occured at 2012-05-02 which gives a total of 4)
2012-05-03:4 (no new parent was added this day...)

这种查询在 SOLR 中是否可行?

【问题讨论】:

    标签: solr


    【解决方案1】:

    是的,如果我正确理解您的问题,这应该相当简单。添加类似的东西

    fq=date:[2012-05-05T00:00:00Z TO 2012-05-06T00:00:00Z]
    

    您的查询将获取日期在 5 月 5 日至 5 月 6 日之间的所有文档。确保以 ISO 8601 格式存储您的日期。

    有关更多信息,请在此处查看日期示例:http://wiki.apache.org/solr/SolrQuerySyntax

    编辑:我现在更好地理解了您的问题 - 您正在寻找“组崩溃”。

    试试

    &group=true&group.field=parent&group.limit=1
    

    并统计返回的文档数。

    如果您希望它们具有每个日期的值,则需要按日期分面:

    &facet=true&facet.field=date
    

    【讨论】:

    • 此查询将计算给定日期范围内的所有文档。我想计算在该范围内出现了多少“父”的新值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    相关资源
    最近更新 更多