relevance-h now calculates some kind of round-robin score
[pazpar2-moved-to-github.git] / heikki / README-HEIKKI
1 Heikki's experiments with ranking
2
3 Personal notes, likely to be out of date.
4
5 Things to experiment with, and find out, and mess about
6
7 Goals:
8  - Understand the ranking
9  - make a better ranking merging algorithm
10
11
12
13
14 Tue 19-Nov-2013 Started this branch
15
16
17 Wed 20-Nov-2013 Make a script that tests ranking against yaz-zserver
18 (as that is the default config). Mostly to have a script to build on later.
19
20 Thu 21-Nov-2013. Start my own complete config
21
22 Fri 22-Nov-2013. Adam defined a new sort type, relevance_h, and put it place
23 in the code. Now I have a place to implement my stuff. Relevant places:
24  pazpar2_config.c:1020  - minor
25  session.c:1318 - call relevance_prepare_read also for my type
26  reclists.c:104 - parse params
27  reclists.c:166 - compare function (for quicksort)
28  relevance.c:417 - calculate score
29          (same function as for relevance, but with extra arg for type)
30
31 The compare function compares positions, when sorting by Metadata_sortkey_position
32 This loops through the records (in the cluster) and finds the smallest rec->pos
33 and then compares those.
34
35 Next: See if I can implement a round robin.
36  - clients.h declares int clients_count(void)
37  - rec->client is a pointer to the client, but we don't have an ordinal from that
38    - keep an array of structs with the pointer, and locate the client number that way
39  - robin-score = pos * n_clients + client_num
40