For estimated hit counts, Zebra returns resultSetStatus=estimtate as
[idzebra-moved-to-github.git] / index / zebraapi.c
index 1b424e3..a8e8039 100644 (file)
@@ -1,5 +1,5 @@
-/* $Id: zebraapi.c,v 1.240 2006-12-22 12:14:25 adam Exp $
-   Copyright (C) 1995-2006
+/* $Id: zebraapi.c,v 1.243 2007-01-16 15:01:15 adam Exp $
+   Copyright (C) 1995-2007
    Index Data ApS
 
 This file is part of the Zebra server.
@@ -258,7 +258,7 @@ ZebraService zebra_start_res(const char *configName, Res def_res, Res over_res)
            }
        }
 
-        zh->timing = zebra_timing_create();
+        zh->timing = yaz_timing_create();
         zh->path_root = res_get (zh->global_res, "root");
        zh->nmem = nmem_create();
        zh->record_classes = recTypeClass_create (zh->global_res, zh->nmem);
@@ -596,14 +596,14 @@ ZEBRA_RES zebra_stop(ZebraService zs)
     nmem_destroy(zs->nmem);
     res_close (zs->global_res);
 
-    zebra_timing_stop(zs->timing);
+    yaz_timing_stop(zs->timing);
     yaz_log (YLOG_LOG, "zebra_stop: %4.2f %4.2f %4.2f",
-             zebra_timing_get_real(zs->timing),
-             zebra_timing_get_user(zs->timing),
-             zebra_timing_get_sys(zs->timing));
+             yaz_timing_get_real(zs->timing),
+             yaz_timing_get_user(zs->timing),
+             yaz_timing_get_sys(zs->timing));
     
 
-    zebra_timing_destroy(&zs->timing);
+    yaz_timing_destroy(&zs->timing);
     xfree(zs);
     return ZEBRA_OK;
 }
@@ -1015,8 +1015,10 @@ ZEBRA_RES zebra_set_approx_limit(ZebraHandle zh, zint approx_limit)
     return ZEBRA_OK;
 }
 
-ZEBRA_RES zebra_search_RPN(ZebraHandle zh, ODR o, Z_RPNQuery *query,
-                          const char *setname, zint *hits)
+ZEBRA_RES zebra_search_RPN_x(ZebraHandle zh, ODR o, Z_RPNQuery *query,
+                             const char *setname, zint *hits,
+                             int *estimated_hit_count,
+                             int *partial_resultset)
 {
     ZEBRA_RES r;
     
@@ -1027,19 +1029,27 @@ ZEBRA_RES zebra_search_RPN(ZebraHandle zh, ODR o, Z_RPNQuery *query,
     assert(hits);
     assert(setname);
     yaz_log(log_level, "zebra_search_rpn");
-    zh->hits = 0;
-    *hits = 0;
 
     if (zebra_begin_read(zh) == ZEBRA_FAIL)
        return ZEBRA_FAIL;
 
     r = resultSetAddRPN(zh, odr_extract_mem(o), query, 
-                       zh->num_basenames, zh->basenames, setname);
+                       zh->num_basenames, zh->basenames, setname,
+                        hits, estimated_hit_count, partial_resultset);
     zebra_end_read(zh);
-    *hits = zh->hits;
     return r;
 }
 
+ZEBRA_RES zebra_search_RPN(ZebraHandle zh, ODR o, Z_RPNQuery *query,
+                           const char *setname, zint *hits)
+{
+    int estimated_hit_count;
+    int partial_resultset;
+    return zebra_search_RPN_x(zh, o, query, setname, hits,
+                              &estimated_hit_count,
+                              &partial_resultset);
+}
+
 ZEBRA_RES zebra_records_retrieve(ZebraHandle zh, ODR stream,
                                 const char *setname,
                                 Z_RecordComposition *comp,
@@ -2387,6 +2397,7 @@ ZEBRA_RES zebra_search_PQF(ZebraHandle zh, const char *pqf_query,
     Z_RPNQuery *query;
     ODR odr;
 
+
     ZEBRA_CHECK_HANDLE(zh);
 
     odr = odr_createmem(ODR_ENCODE);