diff --git a/serve.py b/serve.py index df1d6ff..48139bc 100644 --- a/serve.py +++ b/serve.py @@ -160,12 +160,13 @@ def search_rank(q: str = ''): qs = q.lower().strip().split() # split query by spaces and lowercase pdb = get_papers() - match = lambda s: sum(s.lower().count(qp) for qp in qs) + match = lambda s: sum(min(3, s.lower().count(qp)) for qp in qs) + matchu = lambda s: sum(int(s.lower().count(qp) > 0) for qp in qs) pairs = [] for pid, p in pdb.items(): score = 0.0 - score += 5.0 * match(' '.join([a['name'] for a in p['authors']])) - score += 10.0 * match(p['title']) + score += 10.0 * matchu(' '.join([a['name'] for a in p['authors']])) + score += 20.0 * matchu(p['title']) score += 1.0 * match(p['summary']) if score > 0: pairs.append((score, pid))