def _search_results_count(self, pattern, field): if not pattern: return 0 return get_search_engine().search('user', pattern, rows=0, default_field=field)[1]
def _search_results(self, pattern, field, start=0, rows=200): if not pattern: return [] return get_search_engine().search('user', pattern, start=start, rows=rows, default_field=field)[0]
def get_search_results(type, pattern, query, id_field, max_results=200, default_search_field='text'): ordered_ids = get_search_engine().search(type, pattern, rows=max_results, default_field=default_search_field)[ 0] if pattern else [] # log the result of the search logger = log.get_logger('.' + __name__) logger.debug( 'Search results of type %s for "%s" on search field "%s": %s' % (type, pattern, default_search_field, ordered_ids)) query = query.filter(id_field.in_(ordered_ids)) if ordered_ids: rank_mapping = [(id, rank) for rank, id in enumerate(ordered_ids)] query = query.order_by(case(value=id_field, whens=rank_mapping)) return query
def get_search_results(type, pattern, query, id_field, max_results=200, default_search_field='text'): ordered_ids = get_search_engine().search( type, pattern, rows=max_results, default_field=default_search_field)[0] if pattern else [] # log the result of the search logger = log.get_logger('.' + __name__) logger.debug( 'Search results of type %s for "%s" on search field "%s": %s' % (type, pattern, default_search_field, ordered_ids)) query = query.filter(id_field.in_(ordered_ids)) if ordered_ids: rank_mapping = [(id, rank) for rank, id in enumerate(ordered_ids)] query = query.order_by(case(value=id_field, whens=rank_mapping)) return query