使用ElasticSearch和Rails 3.2.6(/ w轮胎) 我的Project对象有一个方面,它显示项目发布的当月:
facet('timeline') { date :post_date, :interval => 'month' }
这为我提供了按日历月分组的项目。也试过'周'而不是'月',但这给了我按日历周分组。 理想情况下,我们要做的就是拥有像这样的滚动组:
有关如何实现这一目标的任何建议,以便我们不限于日历周,并可以轻松地从数据中挑选出相关的桶? 非常感谢
答案 0 :(得分:3)
您的意思是例如:在过去7天,14天,21天内更新过的项目数量?
如果是,请使用range facet:
curl -XGET 'http://127.0.0.1:9200/YOUR_INDEX/project/_search?pretty=1' -d '
{
"query" : {
"match_all" : {}
},
"facets" : {
"projects" : {
"range" : {
"ranges" : [
{
"to" : "2012-07-09"
},
{
"to" : "2012-07-02"
}
],
"field" : "last_modified_date"
}
}
}
}
'
使用date math会很有用,例如:
curl -XGET 'http://127.0.0.1:9200/_search?pretty=1&search_type=count' -d '
{
"query" : {
"match_all" : {}
},
"facets" : {
"created" : {
"range" : {
"ranges" : [
{
"to" : "now-7d"
},
{
"to" : "now-14d"
}
],
"field" : "created"
}
}
}
}
'
但尚不支持。我已经开了一个问题要求它: https://github.com/elasticsearch/elasticsearch/issues/2102
答案 1 :(得分:0)
您可以使用Range Facets代替,您可以完全控制将要使用的群组。