From 5aaca85f17200dff2c410b0a0f1984646147cab6 Mon Sep 17 00:00:00 2001 From: Martin Fenner Date: Thu, 21 Nov 2019 20:39:09 +0100 Subject: [PATCH] use interval parameter. datacite/datacite#359 --- app/models/doi.rb | 63 +++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/app/models/doi.rb b/app/models/doi.rb index a3dca8895..716dd008f 100644 --- a/app/models/doi.rb +++ b/app/models/doi.rb @@ -484,38 +484,41 @@ def self.query_aggregations end def self.totals_aggregations - # { - # providers_totals: { - # composite: { - # sources: [ - # { provider: { terms: { field: "provider_id", size: ::Provider.__elasticsearch__.count, min_doc_count: 1 } } }, - # { year: { date_histogram: { field: "created", calendar_interval: "year", format: "yyyy" } } } - # ] - # } - # }, - # clients_totals: { - # composite: { - # sources: [ - # { client: { terms: { field: "client_id", size: ::Client.__elasticsearch__.count, min_doc_count: 1 } } }, - # { year: { date_histogram: { field: "created", calendar_interval: "year", format: "yyyy" } } } - # ] - # } - # }, - # prefixes_totals: { - # composite: { - # sources: [ - # { prefix: { terms: { field: "prefix", size: ::Prefix.count, min_doc_count: 1 } } }, - # { year: { date_histogram: { field: "created", calendar_interval: "year", format: "yyyy" } } } - # ] - # } - # } - # } - { - providers_totals: { terms: { field: 'provider_id', size: 50, min_doc_count: 1 }, aggs: sub_aggregations }, - clients_totals: { terms: { field: 'client_id', size: 50, min_doc_count: 1 }, aggs: sub_aggregations }, - prefixes_totals: { terms: { field: 'prefix', size: 50, min_doc_count: 1 }, aggs: sub_aggregations }, + providers_totals: { + composite: { + size: 50, + sources: [ + { provider: { terms: { field: "provider_id", size: ::Provider.__elasticsearch__.count, min_doc_count: 1 } } }, + { year: { date_histogram: { field: "created", interval: "year", format: "yyyy" } } } + ] + } + }, + clients_totals: { + composite: { + size: 50, + sources: [ + { client: { terms: { field: "client_id", size: ::Client.__elasticsearch__.count, min_doc_count: 1 } } }, + { year: { date_histogram: { field: "created", interval: "year", format: "yyyy" } } } + ] + } + }, + prefixes_totals: { + composite: { + size: 50, + sources: [ + { prefix: { terms: { field: "prefix", size: ::Prefix.count, min_doc_count: 1 } } }, + { year: { date_histogram: { field: "created", interval: "year", format: "yyyy" } } } + ] + } + } } + + # { + # providers_totals: { terms: { field: 'provider_id', size: 50, min_doc_count: 1 }, aggs: sub_aggregations }, + # clients_totals: { terms: { field: 'client_id', size: 50, min_doc_count: 1 }, aggs: sub_aggregations }, + # prefixes_totals: { terms: { field: 'prefix', size: 50, min_doc_count: 1 }, aggs: sub_aggregations }, + # } end def self.sub_aggregations