Example #1
0
def non_aggr_search(queries, show_bing, show_blekko, show_entweb, page):
    """
    Generate results in non-aggregated mode.
    Returns a list of three result lists
    """
    if show_bing:
        bing_list = bing_get_item_list(queries[0], page, 10)
    else:
        bing_list = []

    if show_blekko:
        blekko_list = blekko_get_item_list(queries[1], page, 10)
    else:
        blekko_list = []

    if show_entweb:
        entweb_list = entweb_get_item_list(queries[2], page, 10)
    else:
        entweb_list = []

    return [bing_list, blekko_list, entweb_list]
Example #2
0
def non_aggr_search(queries, show_bing, show_blekko, show_entweb, page):
    """
    Generate results in non-aggregated mode.
    Returns a list of three result lists
    """
    if show_bing:
        bing_list = bing_get_item_list(queries[0], page, 10)
    else:
        bing_list = []
    
    if show_blekko:
        blekko_list = blekko_get_item_list(queries[1], page, 10)
    else:
        blekko_list = []
    
    if show_entweb:
        entweb_list = entweb_get_item_list(queries[2], page, 10)
    else:
        entweb_list = []
        
    return [bing_list, blekko_list, entweb_list]
Example #3
0
def aggr_search(queries, show_bing, show_blekko, show_entweb, page):
    """
    Generate results in aggregated mode.
    Return a list of aggregated results.
    """
    bingWeight = 1.737
    blekkoWeight = 1.412
    entwebWeight = 1.0

    scored_list = []

    aggr_page = 0
    engine_page = 0

    ##########################################
    while aggr_page < page:
        if len(scored_list) < 100:
            engine_page += 1

            if show_bing:
                bing_list = bing_get_item_list(queries[0], engine_page, 50)
            else:
                bing_list = []

            if show_blekko:
                blekko_list = blekko_get_item_list(queries[1], engine_page, 50)
            else:
                blekko_list = []

            if show_entweb:
                entweb_list = entweb_get_item_list(queries[2], engine_page, 50)
            else:
                entweb_list = []
            ##################################
            if aggr_page == 0:
                for i in bing_list:
                    i.base_score[0] = 100.0 - bing_list.index(i)

                for j in blekko_list:
                    j.base_score[1] = 100.0 - blekko_list.index(j)

                for k in entweb_list:
                    k.base_score[2] = 100.0 - entweb_list.index(k)
            ##################################
            else:
                bing_top_score = 0
                blekko_top_score = 0
                entweb_top_score = 0

                for i in scored_list:
                    if 'BING' in i.source:
                        if i.base_score[0] > bing_top_score:
                            bing_top_score = i.base_score[0]

                    if 'Blekko' in i.source:
                        if i.base_score[1] > blekko_top_score:
                            blekko_top_score = i.base_score[1]

                    if 'EntireWeb' in i.source:
                        if i.base_score[2] > entweb_top_score:
                            entweb_top_score = i.base_score[2]

                max_top_score = max(bing_top_score, blekko_top_score,
                                    entweb_top_score)
                offset = 100.0 - max_top_score

                for i in bing_list:
                    i.base_score[0] = offset + 50.0 - bing_list.index(i)

                for j in blekko_list:
                    j.base_score[1] = offset + 50.0 - blekko_list.index(j)

                for k in entweb_list:
                    k.base_score[2] = offset + 50.0 - entweb_list.index(k)

                for i in scored_list:
                    if 'BING' in i.source:
                        i.base_score[0] += offset
                    else:
                        for j in bing_list:
                            if i.url.lower() == j.url.lower():
                                i.base_score[0] = j.base_score[0]
                                i.source.append('BING')
                                bing_list.pop(bing_list.index(j))
                                break

                    if 'Blekko' in i.source:
                        i.base_score[1] += offset
                    else:
                        for k in blekko_list:
                            if i.url.lower() == k.url.lower():
                                i.base_score[1] = k.base_score[0]
                                i.source.append('Blekko')
                                blekko_list.pop(blekko_list.index(k))
                                break

                    if 'EntireWeb' in i.source:
                        i.base_score[2] += offset
                    else:
                        for l in entweb_list:
                            if i.url.lower() == l.url.lower():
                                i.base_score[2] = l.base_score[0]
                                i.source.append('EntireWeb')
                                entweb_list.pop(entweb_list.index(l))
                                break

                    i.weighted_score = (i.base_score[0] * bingWeight +
                                        i.base_score[1] * blekkoWeight +
                                        i.base_score[2] * entwebWeight) * (
                                            3 - i.base_score.count(0.0))

            ##################################
            while bing_list:
                for i in blekko_list:
                    if i.url.lower() == bing_list[0].url.lower():
                        bing_list[0].base_score[1] = i.base_score[1]
                        bing_list[0].source += i.source
                        blekko_list.pop(blekko_list.index(i))
                        break

                for j in entweb_list:
                    if j.url.lower() == bing_list[0].url.lower():
                        bing_list[0].base_score[2] += j.base_score[2]
                        bing_list[0].source += j.source
                        entweb_list.pop(entweb_list.index(j))
                        break

                bing_list[0].weighted_score = (
                    bing_list[0].base_score[0] * bingWeight +
                    bing_list[0].base_score[1] * blekkoWeight +
                    bing_list[0].base_score[2] * entwebWeight) * (
                        3 - bing_list[0].base_score.count(0.0))
                scored_list.append(bing_list.pop(0))
            ##################################
            while blekko_list:
                for i in entweb_list:
                    if i.url.lower() == blekko_list[0].url.lower():
                        blekko_list[0].base_score[2] += i.base_score[2]
                        blekko_list[0].source += i.source
                        entweb_list.pop(entweb_list.index(i))
                        break

                blekko_list[0].weighted_score = (
                    blekko_list[0].base_score[1] * blekkoWeight +
                    blekko_list[0].base_score[2] * entwebWeight) * (
                        3 - blekko_list[0].base_score.count(0.0))
                scored_list.append(blekko_list.pop(0))
            ##################################
            while entweb_list:
                entweb_list[0].weighted_score = entweb_list[0].base_score[
                    2] * entwebWeight
                scored_list.append(entweb_list.pop(0))
            ##################################
            sorted_list = sorted(scored_list,
                                 key=attrgetter('weighted_score'),
                                 reverse=True)

            result_list = sorted_list[0:50]
            scored_list = sorted_list[50:]

            aggr_page += 1
        ##################################
        else:
            result_list = sorted_list[0:50]
            scored_list = sorted_list[50:]

            aggr_page += 1

    ##########################################
    return result_list
Example #4
0
def aggr_search(queries, show_bing, show_blekko, show_entweb, page):
    """
    Generate results in aggregated mode.
    Return a list of aggregated results.
    """
    bingWeight = 1.737
    blekkoWeight = 1.412
    entwebWeight = 1.0
    
    scored_list = []
    
    aggr_page = 0
    engine_page = 0

    ##########################################
    while aggr_page < page:
        if len(scored_list) < 100:
            engine_page += 1

            if show_bing:
                bing_list = bing_get_item_list(queries[0], engine_page, 50)
            else:
                bing_list = []

            if show_blekko:
                blekko_list = blekko_get_item_list(queries[1], engine_page, 50)
            else:
                blekko_list = []

            if show_entweb:
                entweb_list = entweb_get_item_list(queries[2], engine_page, 50)
            else:
                entweb_list = []
            ##################################
            if aggr_page == 0:
                for i in bing_list:
                    i.base_score[0] = 100.0 - bing_list.index(i)

                for j in blekko_list:
                    j.base_score[1] = 100.0 - blekko_list.index(j)

                for k in entweb_list:
                    k.base_score[2] = 100.0 - entweb_list.index(k)
            ##################################
            else:
                bing_top_score = 0
                blekko_top_score = 0
                entweb_top_score = 0
                
                for i in scored_list:
                    if 'BING' in i.source:
                        if i.base_score[0] > bing_top_score:
                            bing_top_score = i.base_score[0]

                    if 'Blekko' in i.source:
                        if i.base_score[1] > blekko_top_score:
                            blekko_top_score = i.base_score[1]

                    if 'EntireWeb' in i.source:
                        if i.base_score[2] > entweb_top_score:
                            entweb_top_score = i.base_score[2]

                max_top_score = max(bing_top_score, blekko_top_score, entweb_top_score)
                offset = 100.0 - max_top_score

                
                for i in bing_list:
                    i.base_score[0] = offset + 50.0 - bing_list.index(i)

                for j in blekko_list:
                    j.base_score[1] = offset + 50.0 - blekko_list.index(j)

                for k in entweb_list:
                    k.base_score[2] = offset + 50.0 - entweb_list.index(k)
                
                for i in scored_list:
                    if 'BING' in i.source:
                        i.base_score[0] += offset
                    else:
                        for j in bing_list:
                            if i.url.lower() == j.url.lower():
                                i.base_score[0] = j.base_score[0]
                                i.source.append('BING')
                                bing_list.pop(bing_list.index(j))
                                break

                    if 'Blekko' in i.source:
                        i.base_score[1] += offset
                    else:
                        for k in blekko_list:
                            if i.url.lower() == k.url.lower():
                                i.base_score[1] = k.base_score[0]
                                i.source.append('Blekko')
                                blekko_list.pop(blekko_list.index(k))
                                break

                    if 'EntireWeb' in i.source:
                        i.base_score[2] += offset
                    else:
                        for l in entweb_list:
                            if i.url.lower() == l.url.lower():
                                i.base_score[2] = l.base_score[0]
                                i.source.append('EntireWeb')
                                entweb_list.pop(entweb_list.index(l))
                                break

                    i.weighted_score = (i.base_score[0] * bingWeight + i.base_score[1] * blekkoWeight + i.base_score[2] * entwebWeight) * (3 - i.base_score.count(0.0))
            
            ##################################
            while bing_list:
                for i in blekko_list:
                    if i.url.lower() == bing_list[0].url.lower():
                        bing_list[0].base_score[1] = i.base_score[1]
                        bing_list[0].source += i.source
                        blekko_list.pop(blekko_list.index(i))
                        break

                for j in entweb_list:
                    if j.url.lower() == bing_list[0].url.lower():
                        bing_list[0].base_score[2] += j.base_score[2]
                        bing_list[0].source += j.source
                        entweb_list.pop(entweb_list.index(j))
                        break

                bing_list[0].weighted_score = (bing_list[0].base_score[0] * bingWeight + bing_list[0].base_score[1] * blekkoWeight + bing_list[0].base_score[2] * entwebWeight) * (3 - bing_list[0].base_score.count(0.0))
                scored_list.append(bing_list.pop(0))
            ##################################
            while blekko_list:
                for i in entweb_list:
                    if i.url.lower() == blekko_list[0].url.lower():
                        blekko_list[0].base_score[2] += i.base_score[2]
                        blekko_list[0].source += i.source
                        entweb_list.pop(entweb_list.index(i))
                        break
                        
                blekko_list[0].weighted_score = (blekko_list[0].base_score[1] * blekkoWeight + blekko_list[0].base_score[2] * entwebWeight) * (3 - blekko_list[0].base_score.count(0.0))
                scored_list.append(blekko_list.pop(0))
            ##################################
            while entweb_list:
                entweb_list[0].weighted_score = entweb_list[0].base_score[2] * entwebWeight
                scored_list.append(entweb_list.pop(0))
            ##################################
            sorted_list = sorted(scored_list, key = attrgetter('weighted_score'), reverse = True)
            
            result_list = sorted_list[0:50]
            scored_list = sorted_list[50:]
            
            aggr_page += 1
        ##################################
        else:
            result_list = sorted_list[0:50]
            scored_list = sorted_list[50:]
    
            aggr_page += 1
    
    ##########################################
    return result_list