tweak search scoring for better results, i think
This commit is contained in:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user