From c4328474f7289b4660f6ea62998a610178fdb95c Mon Sep 17 00:00:00 2001 From: Daoud Clarke Date: Tue, 21 Nov 2023 10:01:27 +0000 Subject: [PATCH] Add source to results --- analyse/search.py | 2 +- devdata/index-v2.tinysearch | Bin 10489856 -> 10489856 bytes front-end/assets/css/global.css | 7 +++++++ mwmbl/format.py | 7 ++++--- mwmbl/templates/result.html | 2 +- mwmbl/tinysearchengine/rank.py | 16 +++++++++++----- mwmbl/views.py | 6 +++--- 7 files changed, 27 insertions(+), 13 deletions(-) diff --git a/analyse/search.py b/analyse/search.py index 4bc3b72..8f0f1de 100644 --- a/analyse/search.py +++ b/analyse/search.py @@ -18,7 +18,7 @@ def run(): with TinyIndex(Document, INDEX_PATH) as tiny_index: completer = Completer() ranker = HeuristicRanker(tiny_index, completer) - items = ranker.search('jasper fforde') + items = ranker.search('jasper fforde', []) print() if items: for i, item in enumerate(islice(items, 10)): diff --git a/devdata/index-v2.tinysearch b/devdata/index-v2.tinysearch index d7a3690afd6fb2eb4f8964848903d24ac38f455f..e4316e9d28b8c891ce73bbe33672e9b02ed9ce7c 100644 GIT binary patch delta 4711 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 O3V_15B#keBJNyq`nw{wY delta 4759 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 { color: var(--primary-color); font-size: 1.1rem; diff --git a/mwmbl/format.py b/mwmbl/format.py index ad8f2ef..56df6d3 100644 --- a/mwmbl/format.py +++ b/mwmbl/format.py @@ -3,7 +3,7 @@ import re from mwmbl.tokenizer import tokenize, clean_unicode -def format_result_with_pattern(pattern, result): +def format_result_with_pattern(pattern, result, source): formatted_result = {} for content_type, content_raw in [('title', result.title), ('extract', result.extract)]: content = clean_unicode(content_raw) @@ -17,6 +17,7 @@ def format_result_with_pattern(pattern, result): content_result.append({'value': content[start:end], 'is_bold': is_bold}) formatted_result[content_type] = content_result formatted_result['url'] = result.url + formatted_result['source'] = source return formatted_result @@ -34,8 +35,8 @@ def get_query_regex(terms, is_complete, is_url): return pattern -def format_result(result, query): +def format_result(result, query, source): tokens = tokenize(query) pattern = get_query_regex(tokens, True, False) - return format_result_with_pattern(pattern, result) + return format_result_with_pattern(pattern, result, source) diff --git a/mwmbl/templates/result.html b/mwmbl/templates/result.html index 6b5a634..339d293 100644 --- a/mwmbl/templates/result.html +++ b/mwmbl/templates/result.html @@ -3,7 +3,7 @@