From 3d7b72e5efa433e9c3c4ddf170b5e58ae656a3be Mon Sep 17 00:00:00 2001 From: rmgr Date: Thu, 30 Nov 2023 17:26:59 +1030 Subject: [PATCH] Join counts for multiple words --- .gitignore | 1 + src/search.py | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..550d67d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +src/__pycache__ diff --git a/src/search.py b/src/search.py index e5389f8..0dcb85e 100755 --- a/src/search.py +++ b/src/search.py @@ -6,7 +6,7 @@ import json from urllib.parse import unquote app = Flask(__name__) - +## Todo - Boolean search (AND/OR/NOT/"") @app.route("/search/") def search(query): with open('data/index.json', 'r') as index_json: @@ -17,9 +17,14 @@ def search(query): for q in query_split: q = q.lower() if q in index: - result.append(index[q]) + for item in index[q]: + matching_results = list(filter(lambda entry: entry['url'] == item["url"], result)) + if len(matching_results) == 0: + result.append(item) + else: + matching_results[0]["count"] += item["count"] + #result.append(index[q]) # result.sort(reverse= True,key=lambda entry: int(entry.count)) - print(result) return result