Solr 索引中的所有文档都有一个“已添加”字段,其中包含文档添加到 Solr 的 ISO 8601 日期。
<result name="response" numFound="34587104" start="0">
<doc>
<date name="added">2013-03-04T01:00:26Z</date>
<str name="text">Hello, world!</str>
<str name="id">93416604d274d28a44e14a9535bb9e6e1db3d851</str>
<str name="_version_">1428536769315340290</str>
</doc>
<result/>
假设没有删除任何文档,我如何计算索引中每天存在多少文档?例如,为了知道 2013-03-05 索引中有多少文档,我可以查询q=added:[* TO 2013-03-05T00:00:00Z]
. 但是,我需要知道从一个月前到今天每天索引中有多少文档。
一种解决方案可能是查询一个月前的日期索引中有多少文档,然后考虑每天添加多少文档,然后将它们添加到累积计数中。伪代码:
initial_count = q=added:[* TO NOW/MONTH-1MONTH]
running_total = initial_count;
daily_added_array = facet.range=added
& f.added.facet.range.start=NOW/MONTH-1MONTH
& f.added.facet.range.end=NOW/DAY-1DAY
& f.added.facet.range.gap=+1DAY
foreach (daily_added_array as day) {
running_total += day;
printf(running_total);
}
然而,这种方法似乎非常脆弱并且容易出错。
有没有办法获取每天索引中文档的累积量?