|
|
@@ -78,17 +78,36 @@ class SolrApi(object):
|
|
|
def _get_range_borders(self, collection, query):
|
|
|
props = {}
|
|
|
GAPS = {
|
|
|
- '5MINUTES/MINUTES': '+3SECONDS',
|
|
|
- '15MINUTES/MINUTES': '+10SECONDS',
|
|
|
- '1HOURS/HOURS': '+36SECONDS',
|
|
|
- '1DAYS/DAYS': '+15MINUTES',
|
|
|
- '2DAYS/DAYS': '+30MINUTES',
|
|
|
- '7DAYS/DAYS': '+3HOURS',
|
|
|
+ '5MINUTES/MINUTES': {
|
|
|
+ 'histogram-widget': '+3SECONDS', # 100 slots
|
|
|
+ 'facet-widget': '+30SECONDS', # 10 slots
|
|
|
+ },
|
|
|
+ '15MINUTES/MINUTES': {
|
|
|
+ 'histogram-widget': '+10SECONDS',
|
|
|
+ 'facet-widget': '+90SECONDS',
|
|
|
+ },
|
|
|
+ '1HOURS/MINUTES': {
|
|
|
+ 'histogram-widget': '+36SECONDS',
|
|
|
+ 'facet-widget': '+6MINUTES',
|
|
|
+ },
|
|
|
+ '1DAYS/DAYS': {
|
|
|
+ 'histogram-widget': '+15MINUTES',
|
|
|
+ 'facet-widget': '+144MINUTES',
|
|
|
+ },
|
|
|
+ '2DAYS/DAYS': {
|
|
|
+ 'histogram-widget': '+30MINUTES',
|
|
|
+ 'facet-widget': '+288MINUTES',
|
|
|
+ },
|
|
|
+ '7DAYS/DAYS': {
|
|
|
+ 'histogram-widget': '+3HOURS',
|
|
|
+ 'facet-widget': '+1008MINUTES',
|
|
|
+ }
|
|
|
+ # ...
|
|
|
}
|
|
|
fq_fields = [fq['field'] for fq in query['fqs']]
|
|
|
time_field = collection['timeFilter'].get('field')
|
|
|
|
|
|
- # fqs overrides top time fq
|
|
|
+ # fqs overrides main time filter
|
|
|
if time_field and time_field not in fq_fields:
|
|
|
if collection['timeFilter']['type'] == 'rolling' and collection['timeFilter']['value'] != 'all': # todo all for chart range? guess based on min
|
|
|
props['field'] = collection['timeFilter']['field']
|
|
|
@@ -193,12 +212,13 @@ class SolrApi(object):
|
|
|
# todo round by gap?
|
|
|
|
|
|
if timeFilter:
|
|
|
- if facet['widgetType'] == 'histogram-widget':
|
|
|
+# if facet['widgetType'] == 'histogram-widget':
|
|
|
keys.update({
|
|
|
'start': timeFilter['from'],
|
|
|
'end': timeFilter['to'],
|
|
|
- 'gap': timeFilter['gap'], # add a 'auto'
|
|
|
+ 'gap': timeFilter['gap'][facet['widgetType']], # add a 'auto'
|
|
|
})
|
|
|
+ print keys
|
|
|
|
|
|
params += (
|
|
|
('facet.range', '{!key=%(key)s ex=%(id)s f.%(field)s.facet.range.start=%(start)s f.%(field)s.facet.range.end=%(end)s f.%(field)s.facet.range.gap=%(gap)s f.%(field)s.facet.mincount=%(mincount)s}%(field)s' % keys),
|