Various features added
[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     char *title;
16     int relevance;
17     int *term_frequency_vec;
18     struct record *next_cluster;
19 };
20
21 struct session {
22     struct target *targets;
23     YAZ_PQF_Parser pqf_parser;
24     int requestid; 
25     char query[1024];
26     NMEM nmem;
27     WRBUF wrbuf;
28     struct termlist *termlist;
29     struct relevance *relevance;
30     struct reclist *reclist;
31     int total_hits;
32     int total_records;
33     yaz_marc_t yaz_marc;
34 };
35
36 struct statistics {
37     int num_connections;
38     int num_no_connection;
39     int num_connecting;
40     int num_initializing;
41     int num_searching;
42     int num_presenting;
43     int num_idle;
44     int num_failed;
45     int num_error;
46     int num_hits;
47     int num_records;
48 };
49
50 struct hitsbytarget {
51     char id[256];
52     int hits;
53     int diagnostic;
54     int records;
55     char* state;
56 };
57
58 struct hitsbytarget *hitsbytarget(struct session *s, int *count);
59 struct session *new_session();
60 void session_destroy(struct session *s);
61 int load_targets(struct session *s, const char *fn);
62 void statistics(struct session *s, struct statistics *stat);
63 char *search(struct session *s, char *query);
64 struct record **show(struct session *s, int start, int *num);
65 struct termlist_score **termlist(struct session *s, int *num);
66
67 #endif
68
69 /*
70  * Local variables:
71  * c-basic-offset: 4
72  * indent-tabs-mode: nil
73  * End:
74  * vim: shiftwidth=4 tabstop=8 expandtab
75  */