소스 검색

[search] Adding count to facet multiqueries

Romain Rigaux 11 년 전
부모
커밋
3e9580c
2개의 변경된 파일32개의 추가작업 그리고 31개의 파일을 삭제
  1. 2 2
      apps/search/src/search/templates/search2.mako
  2. 30 29
      apps/search/src/search/views.py

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

@@ -95,8 +95,8 @@ ${ commonheader(_('Search'), "search", user, "60px") | n,unicode }
     <div class="draggable-widget" data-bind="draggable: draggablePie" title="${_('Pie Chart')}" rel="tooltip" data-placement="top"><a href="#"><i class="hcha hcha-pie-chart"></i></a></div>
     <!-- <div class="draggable-widget" data-bind="draggable: draggableHit" title="${_('Hit Count')}" rel="tooltip" data-placement="top"><a href="#"><i class="fa fa-tachometer"></i></a></div> -->
     <div class="draggable-widget" data-bind="draggable: draggableBar" title="${_('Bar Chart')}" rel="tooltip" data-placement="top"><a href="#"><i class="hcha hcha-bar-chart"></i></a></div>
-    <div class="draggable-widget" data-bind="draggable: draggableHistogram" title="${_('Histogram')}" rel="tooltip" data-placement="top"><a href="#"><i class="fa fa-long-arrow-right"></i></a></div>
-    <div class="draggable-widget" data-bind="draggable: draggableLine" title="${_('Line')}" rel="tooltip" data-placement="top"><a href="#"><i class="hcha hcha-line-chart"></i></a></div>
+    <div class="draggable-widget" data-bind="draggable: draggableLine" title="${_('Line')}" rel="tooltip" data-placement="top"><a href="#"><i class="hcha hcha-line-chart"></i></a></div>    
+    <div class="draggable-widget" data-bind="draggable: draggableHistogram" title="${_('Histogram')}" rel="tooltip" data-placement="top"><a href="#"><i class="fa fa-long-arrow-right"></i></a></div>    
     <div class="draggable-widget" data-bind="draggable: draggableFilter" title="${_('Filter Bar')}" rel="tooltip" data-placement="top"><a href="#"><i class="fa fa-filter"></i></a></div>
     <div class="draggable-widget" data-bind="draggable: draggableMap" title="${_('Map')}" rel="tooltip" data-placement="top"><a href="#"><i class="hcha hcha-map-chart"></i></a></div>    
   </div>

+ 30 - 29
apps/search/src/search/views.py

@@ -484,37 +484,38 @@ def get_document(request):
 def get_timeline(request):  
   result = {'status': -1, 'message': 'Error'}
 
-#  try:
-  collection = json.loads(request.POST.get('collection', '{}'))
-  query = json.loads(request.POST.get('query', '{}'))
-  facet = json.loads(request.POST.get('facet', '{}'))
-  qdata = json.loads(request.POST.get('qdata', '{}'))
-  multiQ = request.POST.get('multiQ', 'query')
-  
-  
-  if multiQ == 'query':
-    label = qdata['q'] 
-    query['qs'] = [qdata]
-  else:
-    label = qdata
-    facet_id = facet['id']
-    # Only care about our current field:value filter
-    for fq in query['fqs']:
-      if fq['id'] == facet_id:
-        fq['filter'] = [qdata] 
+  try:
+    collection = json.loads(request.POST.get('collection', '{}'))
+    query = json.loads(request.POST.get('query', '{}'))
+    facet = json.loads(request.POST.get('facet', '{}'))
+    qdata = json.loads(request.POST.get('qdata', '{}'))
+    multiQ = request.POST.get('multiQ', 'query')
     
-  # Remove other facets from collection for speed
-  collection['facets'] = filter(lambda f: f['widgetType'] == 'histogram-widget', collection['facets'])
-  
-  response = SolrApi(SOLR_URL.get(), request.user).query2(collection, query)
-  response = augment_solr_response2(response, collection, query)
-
-  result['series'] = {'label': label, 'counts': response['normalized_facets'][0]['counts']}
-  result['status'] = 0
-  result['message'] = ''
     
-#  except Exception, e:
-#    result['message'] = unicode(str(e), "utf8")
+    if multiQ == 'query':
+      label = qdata['q'] 
+      query['qs'] = [qdata]
+    else:
+      label = qdata
+      facet_id = facet['id']
+      # Only care about our current field:value filter
+      for fq in query['fqs']:
+        if fq['id'] == facet_id:
+          fq['filter'] = [qdata] 
+      
+    # Remove other facets from collection for speed
+    collection['facets'] = filter(lambda f: f['widgetType'] == 'histogram-widget', collection['facets'])
+    
+    response = SolrApi(SOLR_URL.get(), request.user).query2(collection, query)
+    response = augment_solr_response2(response, collection, query)
+  
+    label += ' (%s) ' % response['response']['numFound']
+  
+    result['series'] = {'label': label, 'counts': response['normalized_facets'][0]['counts']}
+    result['status'] = 0
+    result['message'] = ''
+  except Exception, e:
+    result['message'] = unicode(str(e), "utf8")
 
   return HttpResponse(json.dumps(result), mimetype="application/json")