[mod] scoring mods

This commit is contained in:
asciimoo 2013-10-27 19:06:30 +01:00
parent 21e9c87305
commit ca0800306f
1 changed files with 2 additions and 1 deletions

View File

@ -131,12 +131,13 @@ def search(query, request, selected_categories):
engines[engine_name].stats['result_count'] += len(engine_results) engines[engine_name].stats['result_count'] += len(engine_results)
flat_res = filter(None, chain.from_iterable(izip_longest(*results.values()))) flat_res = filter(None, chain.from_iterable(izip_longest(*results.values())))
flat_len = len(flat_res) flat_len = len(flat_res)
engines_len = len(selected_engines)
results = [] results = []
# deduplication + scoring # deduplication + scoring
for i,res in enumerate(flat_res): for i,res in enumerate(flat_res):
res['parsed_url'] = urlparse(res['url']) res['parsed_url'] = urlparse(res['url'])
res['engines'] = [res['engine']] res['engines'] = [res['engine']]
score = (flat_len - i - flat_len%len(engines))*settings.weights.get(res['engine'], 1) score = int((flat_len - i)/engines_len)*settings.weights.get(res['engine'], 1)
duplicated = False duplicated = False
for new_res in results: for new_res in results:
if res['parsed_url'].netloc == new_res['parsed_url'].netloc and\ if res['parsed_url'].netloc == new_res['parsed_url'].netloc and\