Pārlūkot izejas kodu

[search] Integrate rolling time to text facet

Romain Rigaux 10 gadi atpakaļ
vecāks
revīzija
8b5d8f4

+ 2 - 2
apps/search/src/search/templates/search.mako

@@ -123,8 +123,8 @@ ${ commonheader(_('Search'), "search", user, "80px") | n,unicode }
         <option value="all">${ _('All') }</option>
         <option value="5MINUTES/MINUTES">${ _('Last 5 Minutes') }</option>
         <option value="15MINUTES/MINUTES">Last 15 Minutes</option>
-        <option value="1HOURS/HOURS">Last 1 Hour</option>
-        <option value="1DAYS/DAYS">Yesterday</option>
+        <option value="1HOURS/MINUTES">Last 1 Hour</option>
+        <option value="1DAYS/DAYS">Last day</option>
         <option value="2DAYS/DAYS">Last 2 days</option>
         <option value="7DAYS/DAYS">Last Week</option>
         <option value="6MONTHS/MONTHS">Last 6 Months</option>

+ 29 - 9
desktop/libs/libsolr/src/libsolr/api.py

@@ -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),