コード例 #1
0
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]
        elif facet['type'] == 'range':
            _prop = filter(lambda prop: prop['from'] == qdata,
                           facet['properties'])[0]
            label = '%(from)s - %(to)s ' % _prop
            facet_id = facet['id']
            # Only care about our current field:value filter
            for fq in query['fqs']:
                if fq['id'] == facet_id:
                    fq['properties'] = [_prop]
        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'] = [{'value': qdata, 'exclude': False}]

        # Remove other facets from collection for speed
        collection['facets'] = [
            f for f in collection['facets']
            if f['widgetType'] == 'histogram-widget'
        ]

        response = SolrApi(SOLR_URL.get(),
                           request.user).query(collection, query)
        response = augment_solr_response(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 as e:
        result['message'] = force_unicode(e)

    return JsonResponse(result)
コード例 #2
0
 def query(self, collection, query, facet=None):
     if facet:
         collection['template']['rows'] = 0
         collection['facets'] = [facet]
     response = self.api.query(collection, query)
     return augment_solr_response(response, collection, query)
コード例 #3
0
ファイル: dashboard_api.py プロジェクト: lorelib/hue
 def query(self, collection, query, facet=None):
   if facet:
     collection['template']['rows'] = 0
     collection['facets'] = [facet]
   response = self.api.query(collection, query)
   return augment_solr_response(response, collection, query)
コード例 #4
0
 def query(self, collection, query, facet=None):
   response = self.api.query(collection, query)
   return augment_solr_response(response, collection, query)
コード例 #5
0
ファイル: dashboard_api.py プロジェクト: 10sr/hue
 def query(self, collection, query, facet=None):
   response = self.api.query(collection, query)
   return augment_solr_response(response, collection, query)