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
Exemple #5
0
 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]
Exemple #6
0
 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]