From 07c84a6e1a1e82f455f096ae55c80559da9f7473 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Mon, 10 May 2021 15:35:46 -0700 Subject: [PATCH] Adds confidence ratings to inventaire results Fixes bad matches in csv imports --- bookwyrm/connectors/inventaire.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bookwyrm/connectors/inventaire.py b/bookwyrm/connectors/inventaire.py index 0c573265..102c9d72 100644 --- a/bookwyrm/connectors/inventaire.py +++ b/bookwyrm/connectors/inventaire.py @@ -74,6 +74,14 @@ class Connector(AbstractConnector): **{k: data.get(k) for k in ["uri", "image", "labels", "sitelinks"]}, } + def search(self, query, min_confidence=None): + """overrides default search function with confidence ranking""" + results = super().search(query) + if min_confidence: + # filter the search results after the fact + return [r for r in results if r.confidence >= min_confidence] + return results + def parse_search_data(self, data): return data.get("results") @@ -84,6 +92,9 @@ class Connector(AbstractConnector): if images else None ) + # a deeply messy translation of inventaire's scores + confidence = float(search_result.get("_score", 0.1)) + confidence = 0.1 if confidence < 150 else 0.999 return SearchResult( title=search_result.get("label"), key=self.get_remote_id(search_result.get("uri")), @@ -92,6 +103,7 @@ class Connector(AbstractConnector): self.base_url, search_result.get("uri") ), cover=cover, + confidence=confidence, connector=self, )