예제 #1
0
 def format_search_result(cls, result):
     if not SearchEngine.check_result(result):
         return []
     formatted = []
     result = result['hits']['hits']
     for r in result:
         _source = r['_source']
         try:
             hl_description = r['highlight']['description'][0]
         except:
             logging.debug('No highlight for %s', _source)
             hl_description = ''
         description = _source.get('description')
         sr = dict(
             issue_id=_source.get('issue_id'),
             description=description if description else '',
             hl_description=hl_description,
         )
         if not sr['issue_id']:
             logging.warn('Invaild issue search result, skip: %s', _source)
             continue
         sr = IssueResult(**sr)
         formatted.append(sr)
     return formatted
예제 #2
0
 def format_search_result(cls, result):
     if not SearchEngine.check_result(result):
         return []
     formatted = []
     result = result['hits']['hits']
     for r in result:
         _source = r['_source']
         try:
             hl_description = r['highlight']['description'][0]
         except:
             logging.debug('No highlight for %s', _source)
             hl_description = ''
         sr = dict(
             ticket_number=_source.get('ticket_id'),
             project_id=_source.get('to_proj_id'),
             hl_description=hl_description,
         )
         if not sr['project_id'] or not sr['ticket_number']:
             logging.warn(
                 'Invaild pullrequest search result, skip: %s', _source)
             continue
         sr = PullResult(**sr)
         formatted.append(sr)
     return formatted
예제 #3
0
 def format_facets(cls, result):
     if not SearchEngine.check_result(result):
         return {}
     formatted = dict(state=result['facets']['state']['terms'])
     return formatted