gpt4 book ai didi

lucene - apache solr : sum of data resulted from group by

转载 作者:行者123 更新时间:2023-12-04 12:25:19 25 4
gpt4 key购买 nike

我们有一个需求,我们需要按特定字段对记录进行分组并取相应数字字段的总和

前任。选择 userid, sum(click_count) from user_action group by userid;

我们正在尝试使用 apache solr 来做到这一点,发现有两种方法可以做到这一点:

  • 使用字段折叠功能( http://blog.jteam.nl/2009/10/20/result-grouping-field-collapsing-with-solr/ )但发现了两个问题:
    1.1.这不是发布的一部分,可以作为补丁提供,所以我们不确定我们是否可以在生产中使用它。
    1.2.我们不会取回总和,而是个人计数,我们需要在客户端对其进行求和。
  • 使用 Stats 组件和分面搜索 ( http://wiki.apache.org/solr/StatsComponent )。这符合我们的要求,但对于非常大的数据集来说还不够快。

  • 我只是想知道是否有人知道任何其他方式来实现这一目标。
    感谢任何帮助。

    谢谢,

    特兰斯。

    最佳答案

    为什么不使用 StatsComponent 呢? - 从 Solr 1.4 开始可用。

    $ curl 'http://search/select?q=*&rows=0&stats=on&stats.field=click_count' |
    tidy -xml -indent -quiet -wrap 2000000

    <?xml version="1.0" encoding="utf-8"?>
    <response>
    <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">17</int>
    <lst name="params">
    <str name="q">*</str>
    <str name="stats">on</str>
    <arr name="stats.field">
    <str>click_count</str>
    </arr>
    <str name="rows">0</str>
    </lst>
    </lst>
    <result name="response" numFound="577" start="0" />
    <lst name="stats">
    <lst name="stats_fields">
    <lst name="click_count">
    <double name="min">1.0</double>
    <double name="max">3487.0</double>
    <double name="sum">47912.0</double>
    <long name="count">577</long>
    <long name="missing">0</long>
    <double name="sumOfSquares">4.0208702E7</double>
    <double name="mean">83.0363951473137</double>
    <double name="stddev">250.79824725438448</double>
    </lst>
    </lst>
    </lst>
    </response>

    关于lucene - apache solr : sum of data resulted from group by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2966051/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com