如何在Solr搜索结果上计算日期时间类型字段?

时间:2017-04-17 10:17:00

标签: solr

我想使用Solr搜索并在datetime类型字段中计算结果,

如果我只使用fact_field,它将只获得100行。

有没有人有任何想法来解决这个问题?

像这样的领域"创建":" 2015-09-02T05:57:23Z"

我可以在Solr中按年或月计算这个数字吗?

1 个答案:

答案 0 :(得分:1)

您可以使用facet.range

执行此操作

如果您想按当年和上一年的月份计算文件:
使用下面的参数:

  "facet.range":"created",
  "q":"*:*",
  "facet.range.gap":"+1MONTH",
  "facet":"true",
  "facet.range.start":"NOW/YEAR-1YEAR",
  "facet.range.end":"NOW"

示例:

http://127.0.0.1:8983/solr/test/select?q=*%3A*&facet=true&facet.range=created&facet.range.start=NOW/YEAR-1YEAR&facet.range.end=NOW&facet.range.gap=%2B1MONTH

这里

  • facet.range

      

    facet.range参数定义Solr应为其创建范围构面的字段。对于你的情况,它是创建的字段。

  • facet.range.start

      

    facet.range.start参数指定范围的下限

  • facet.range.end

      

    facet.range.end指定范围的上限

  • facet.range.gap

      

    每个范围的跨度表示为要添加到下限的值。对于日期字段,应使用DateMathParser语法表示(例如,facet.range.gap =%2B1DAY ...' + 1DAY')。对于你的情况它的年份或月份。

来源:

https://cwiki.apache.org/confluence/display/solr/Faceting#Faceting-DateFacetingParameters https://cwiki.apache.org/confluence/display/solr/Working+with+Dates