diff options
| author | Bnyro <bnyro@tutanota.com> | 2024-05-05 20:43:45 +0200 |
|---|---|---|
| committer | Markus Heiser <markus.heiser@darmarIT.de> | 2024-06-07 14:42:52 +0200 |
| commit | 3bec04079c027b952dee95dab194f29ea12e12a5 (patch) | |
| tree | 42fa4444622987a19e96a129b7efcb9b9d496595 /searx/results.py | |
| parent | d4c3d309952b3a50e553808d1c367ec5ca23d62c (diff) | |
[feat] hostname replace plugin: possibility to prioritize certain websites
Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
Diffstat (limited to 'searx/results.py')
| -rw-r--r-- | searx/results.py | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/searx/results.py b/searx/results.py index 8b248f8e0..b846eb275 100644 --- a/searx/results.py +++ b/searx/results.py @@ -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) |