![](/img/trans.png)
[英]ElasticSearch and tire/Rails: use two fields for a single facet
[英]ElasticSearch facet rolling weeks (rails / tire)
在Rails 3.2.6中使用ElasticSearch(/ w Tire),我的Project對象上有一個構面,該構面當前顯示該項目發布在哪個月:
facet('timeline') { date :post_date, :interval => 'month' }
這給了我按日歷月分組的項目。 還嘗試了“周”而不是“月”,但這使我可以按日歷周分組。 理想情況下,我們希望做的是像這樣的滾動小組:
關於如何實現此目標的任何建議,使我們不僅限於日歷周,而且可以輕松地從數據中選擇相關的存儲桶? 非常感謝
例如,您的意思是:在過去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.