mirror of
https://github.com/searxng/searxng.git
synced 2025-08-19 02:06:50 +02:00
[feat] hostname replace plugin: possibility to prioritize certain websites
Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
parent
d4c3d30995
commit
3bec04079c
7 changed files with 117 additions and 76 deletions
|
@ -130,16 +130,25 @@ def merge_two_infoboxes(infobox1, infobox2): # pylint: disable=too-many-branche
|
|||
infobox1['content'] = content2
|
||||
|
||||
|
||||
def result_score(result):
|
||||
def result_score(result, priority):
|
||||
weight = 1.0
|
||||
|
||||
for result_engine in result['engines']:
|
||||
if hasattr(engines[result_engine], 'weight'):
|
||||
weight *= float(engines[result_engine].weight)
|
||||
|
||||
occurrences = len(result['positions'])
|
||||
weight *= len(result['positions'])
|
||||
score = 0
|
||||
|
||||
return sum((occurrences * weight) / position for position in result['positions'])
|
||||
for position in result['positions']:
|
||||
if priority == 'low':
|
||||
continue
|
||||
if priority == 'high':
|
||||
score += weight
|
||||
else:
|
||||
score += weight / position
|
||||
|
||||
return score
|
||||
|
||||
|
||||
class Timing(NamedTuple): # pylint: disable=missing-class-docstring
|
||||
|
@ -354,9 +363,7 @@ class ResultContainer:
|
|||
self._closed = True
|
||||
|
||||
for result in self._merged_results:
|
||||
score = result_score(result)
|
||||
result['score'] = score
|
||||
|
||||
result['score'] = result_score(result, result.get('priority'))
|
||||
# removing html content and whitespace duplications
|
||||
if result.get('content'):
|
||||
result['content'] = utils.html_to_text(result['content']).strip()
|
||||
|
@ -364,7 +371,7 @@ class ResultContainer:
|
|||
result['title'] = ' '.join(utils.html_to_text(result['title']).strip().split())
|
||||
|
||||
for result_engine in result['engines']:
|
||||
counter_add(score, 'engine', result_engine, 'score')
|
||||
counter_add(result['score'], 'engine', result_engine, 'score')
|
||||
|
||||
results = sorted(self._merged_results, key=itemgetter('score'), reverse=True)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue