我想使用Solr搜索并在datetime类型字段中计算结果,
如果我只使用fact_field,它将只获得100行。
有没有人有任何想法来解决这个问题?
像这样的领域"创建":" 2015-09-02T05:57:23Z"
我可以在Solr中按年或月计算这个数字吗?
答案 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