summaryrefslogtreecommitdiff
path: root/searx/results.py
diff options
context:
space:
mode:
Diffstat (limited to 'searx/results.py')
-rw-r--r--searx/results.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/searx/results.py b/searx/results.py
index 5dd1bff21..caf02213d 100644
--- a/searx/results.py
+++ b/searx/results.py
@@ -6,6 +6,7 @@ from typing import List, NamedTuple, Set
from urllib.parse import urlparse, unquote
from searx import logger
+from searx import utils
from searx.engines import engines
from searx.metrics import histogram_observe, counter_add, count_error
@@ -353,6 +354,10 @@ class ResultContainer:
for result in self._merged_results:
score = result_score(result)
result['score'] = score
+ if result.get('content'):
+ result['content'] = utils.html_to_text(result['content']).strip()
+ # removing html content and whitespace duplications
+ result['title'] = ' '.join(utils.html_to_text(result['title']).strip().split())
for result_engine in result['engines']:
counter_add(score, 'engine', result_engine, 'score')
@@ -415,11 +420,19 @@ class ResultContainer:
def results_length(self):
return len(self._merged_results)
- def results_number(self):
+ @property
+ def number_of_results(self) -> int:
+ """Returns the average of results number, returns zero if the average
+ result number is smaller than the actual result count."""
+
resultnum_sum = sum(self._number_of_results)
if not resultnum_sum or not self._number_of_results:
return 0
- return resultnum_sum / len(self._number_of_results)
+
+ average = int(resultnum_sum / len(self._number_of_results))
+ if average < self.results_length():
+ average = 0
+ return average
def add_unresponsive_engine(self, engine_name: str, error_type: str, suspended: bool = False):
if engines[engine_name].display_error_messages: