From 7ccf9257d0bf3554952318c95805ad49764434be Mon Sep 17 00:00:00 2001 From: Krateng Date: Wed, 6 Mar 2019 20:18:26 +0100 Subject: [PATCH] Relevance sorting of search results --- database.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/database.py b/database.py index 3353b3d..08a4b62 100644 --- a/database.py +++ b/database.py @@ -639,9 +639,13 @@ def rebuild(): def search(): keys = FormsDict.decode(request.query) query = keys.get("query") + query = query.lower() artists = db_search(query,type="ARTIST") tracks = db_search(query,type="TRACK") + # if the string begins with the query it's a better match, if a word in it begins with it, still good + artists.sort(key=lambda x: 2 if x.lower().startswith(query) else 1 if " " + query in x.lower() else 0,reverse=True) + tracks.sort(key=lambda x: 2 if x["title"].lower().startswith(query) else 1 if " " + query in x["title"].lower() else 0,reverse=True) return {"artists":artists,"tracks":tracks} ####