繁体   English   中英

ElasticSearch小平面滚动周(导轨/轮胎)

[英]ElasticSearch facet rolling weeks (rails / tire)

在Rails 3.2.6中使用ElasticSearch(/ w Tire),我的Project对象上有一个构面,该构面当前显示该项目发布在哪个月:

facet('timeline') { date :post_date, :interval => 'month' }

这给了我按日历月分组的项目。 还尝试了“周”而不是“月”,但这使我可以按日历周分组。 理想情况下,我们希望做的是像这样的滚动小组:

  • 最近7天
  • 最近14天
  • 最近21天

关于如何实现此目标的任何建议,使我们不仅限于日历周,而且可以轻松地从数据中选择相关的存储桶? 非常感谢

例如,您的意思是:在过去7天,14天,21天中已更新的项目数?

如果是这样,请使用一个范围构面

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"
         }
      }
   }
}
'

使用日期数学将很有用,例如:

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

您可以改用Range Facets ,在那里您将完全控制将要使用的组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM