Various features added
[pazpar2-moved-to-github.git] / pazpar2.h
index 1e22b78..b993327 100644 (file)
--- a/pazpar2.h
+++ b/pazpar2.h
@@ -1,23 +1,36 @@
 #ifndef PAZPAR2_H
 #define PAZPAR2_H
 
-#include <yaz/pquery.h>
+struct record;
 
-struct session {
-    struct target *targets;
-    YAZ_PQF_Parser pqf_parser;
-    int requestid; 
-    char query[1024];
-    NMEM nmem;
-};
+#include <yaz/pquery.h>
+#include "termlists.h"
+#include "relevance.h"
 
 struct record {
     struct target *target;
     int target_offset;
     char *buf;
     char *merge_key;
+    char *title;
+    int relevance;
+    int *term_frequency_vec;
     struct record *next_cluster;
-    struct record *head_cluster;
+};
+
+struct session {
+    struct target *targets;
+    YAZ_PQF_Parser pqf_parser;
+    int requestid; 
+    char query[1024];
+    NMEM nmem;
+    WRBUF wrbuf;
+    struct termlist *termlist;
+    struct relevance *relevance;
+    struct reclist *reclist;
+    int total_hits;
+    int total_records;
+    yaz_marc_t yaz_marc;
 };
 
 struct statistics {
@@ -30,6 +43,8 @@ struct statistics {
     int num_idle;
     int num_failed;
     int num_error;
+    int num_hits;
+    int num_records;
 };
 
 struct hitsbytarget {
@@ -42,9 +57,12 @@ struct hitsbytarget {
 
 struct hitsbytarget *hitsbytarget(struct session *s, int *count);
 struct session *new_session();
+void session_destroy(struct session *s);
 int load_targets(struct session *s, const char *fn);
 void statistics(struct session *s, struct statistics *stat);
-void search(struct session *s, char *query);
+char *search(struct session *s, char *query);
+struct record **show(struct session *s, int start, int *num);
+struct termlist_score **termlist(struct session *s, int *num);
 
 #endif