forked from mirrors/bookwyrm
Adds confidence ratings to inventaire results
Fixes bad matches in csv imports
This commit is contained in:
parent
5efc7280a1
commit
07c84a6e1a
1 changed files with 12 additions and 0 deletions
|
@ -74,6 +74,14 @@ class Connector(AbstractConnector):
|
||||||
**{k: data.get(k) for k in ["uri", "image", "labels", "sitelinks"]},
|
**{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):
|
def parse_search_data(self, data):
|
||||||
return data.get("results")
|
return data.get("results")
|
||||||
|
|
||||||
|
@ -84,6 +92,9 @@ class Connector(AbstractConnector):
|
||||||
if images
|
if images
|
||||||
else None
|
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(
|
return SearchResult(
|
||||||
title=search_result.get("label"),
|
title=search_result.get("label"),
|
||||||
key=self.get_remote_id(search_result.get("uri")),
|
key=self.get_remote_id(search_result.get("uri")),
|
||||||
|
@ -92,6 +103,7 @@ class Connector(AbstractConnector):
|
||||||
self.base_url, search_result.get("uri")
|
self.base_url, search_result.get("uri")
|
||||||
),
|
),
|
||||||
cover=cover,
|
cover=cover,
|
||||||
|
confidence=confidence,
|
||||||
connector=self,
|
connector=self,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue