コード例 #1
0
ファイル: api.py プロジェクト: ziq211/hue
def get_terms(request):
  result = {'status': -1, 'message': 'Error'}

  try:
    collection = json.loads(request.POST.get('collection', '{}'))
    analysis = json.loads(request.POST.get('analysis', '{}'))
    limit = json.loads(request.POST.get('limit', '25'))

    support_distributed = [engine for engine in get_engines(request.user) if engine['type'] == 'solr'][0]['analytics']

    field = analysis['name']
    properties = {
      'terms.limit': limit,
      'terms.distrib': str(support_distributed).lower(),
      # lower
      # mincount
      # maxcount
    }
    if analysis['terms']['prefix']:
      properties['terms.regex'] = '.*%(prefix)s.*' % analysis['terms'] # Use regexp instead of case sensitive 'terms.prefix'
      properties['terms.regex.flag'] = 'case_insensitive'

    result['terms'] = SolrApi(SOLR_URL.get(), request.user).terms(collection['name'], field, properties)

    result['terms'] = pairwise2(field, [], result['terms']['terms'][field])
    result['status'] = 0
    result['message'] = ''

  except Exception as e:
    result['message'] = force_unicode(e)
    if 'not currently supported' in result['message']:
      result['status'] = 1
      result['message'] = _('This field does not support stats')

  return JsonResponse(result)
コード例 #2
0
def get_terms(request):
  result = {'status': -1, 'message': 'Error'}

  try:
    collection = json.loads(request.POST.get('collection', '{}'))
    analysis = json.loads(request.POST.get('analysis', '{}'))
    limit = json.loads(request.POST.get('limit', '25'))

    field = analysis['name']
    properties = {
      'terms.limit': limit,
      # lower
      # mincount
      # maxcount
    }
    if analysis['terms']['prefix']:
      properties['terms.prefix'] = analysis['terms']['prefix']

    result['terms'] = SolrApi(SOLR_URL.get(), request.user).terms(collection['name'], field, properties)
    result['terms'] = pairwise2(field, [], result['terms']['terms'][field])
    result['status'] = 0
    result['message'] = ''

  except Exception, e:
    result['message'] = force_unicode(e)
    if 'not currently supported' in result['message']:
      result['status'] = 1
      result['message'] = _('This field does not support stats')