Adding relevance ranking, etc.
[pazpar2-moved-to-github.git] / pazpar2.h
1 #ifndef PAZPAR2_H
2 #define PAZPAR2_H
3
4 struct record;
5
6 #include <yaz/pquery.h>
7 #include "termlists.h"
8 #include "relevance.h"
9
10 struct record {
11     struct target *target;
12     int target_offset;
13     char *buf;
14     char *merge_key;
15     int relevance;
16     int *term_frequency_vec;
17     struct record *next_cluster;
18 };
19
20 struct session {
21     struct target *targets;
22     YAZ_PQF_Parser pqf_parser;
23     int requestid; 
24     char query[1024];
25     NMEM nmem;
26     WRBUF wrbuf;
27     struct termlist *termlist;
28     struct relevance *relevance;
29     struct reclist *reclist;
30     yaz_marc_t yaz_marc;
31 };
32
33 struct statistics {
34     int num_connections;
35     int num_no_connection;
36     int num_connecting;
37     int num_initializing;
38     int num_searching;
39     int num_presenting;
40     int num_idle;
41     int num_failed;
42     int num_error;
43 };
44
45 struct hitsbytarget {
46     char id[256];
47     int hits;
48     int diagnostic;
49     int records;
50     char* state;
51 };
52
53 struct hitsbytarget *hitsbytarget(struct session *s, int *count);
54 struct session *new_session();
55 void session_destroy(struct session *s);
56 int load_targets(struct session *s, const char *fn);
57 void statistics(struct session *s, struct statistics *stat);
58 void search(struct session *s, char *query);
59 struct record **show(struct session *s, int start, int *num);
60 struct termlist_score **termlist(struct session *s, int *num);
61
62 #endif
63
64 /*
65  * Local variables:
66  * c-basic-offset: 4
67  * indent-tabs-mode: nil
68  * End:
69  * vim: shiftwidth=4 tabstop=8 expandtab
70  */