X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=include%2Frset.h;h=ec09bad60c88e6971e028f9509ffc7844456f82a;hb=98912d364cb21abf4c2f3229d5578e2a3159f616;hp=2fa67a32b73674a5038a358476e320a5719b67a8;hpb=3c547fb0a2e275ef21871d865116e288114c0910;p=idzebra-moved-to-github.git diff --git a/include/rset.h b/include/rset.h index 2fa67a3..ec09bad 100644 --- a/include/rset.h +++ b/include/rset.h @@ -1,6 +1,6 @@ -/* $Id: rset.h,v 1.39 2004-10-22 10:12:51 heikki Exp $ - Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 - Index Data Aps +/* $Id: rset.h,v 1.45 2005-01-15 20:47:15 adam Exp $ + Copyright (C) 1995-2005 + Index Data ApS This file is part of the Zebra server. @@ -20,22 +20,18 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - - #ifndef RSET_H #define RSET_H -#include +#include /* unfortunately we need the isam includes here, for the arguments for */ /* rsisamX_create */ -#include -#include -#include +#include +#include +#include -#ifdef __cplusplus -extern "C" { -#endif +YAZ_BEGIN_CDECL typedef struct rsfd *RSFD; /* Rset "file descriptor" */ typedef struct rset *RSET; /* Result set */ @@ -48,11 +44,14 @@ typedef struct rset *RSET; /* Result set */ */ struct rset_term { + /** the term itself */ char *name; - int nn; char *flags; - int count; int type; + /** the rset corresponding to this term */ + RSET rset; + /** private stuff for the ranking algorithm */ + void *rankpriv; }; typedef struct rset_term *TERMID; @@ -196,7 +195,7 @@ RSET rset_dup (RSET rs); /* int rset_pos(RSFD fd, double *current, double *total); */ #define rset_pos(rfd,cur,tot) \ - (*(rfd)->rset->control->f_pos)( (rfd),(cur),(tot)) + (*(rfd)->rset->control->f_pos)((rfd),(cur),(tot)) /* int rset_read(RSFD rfd, void *buf, TERMID term); */ #define rset_read(rfd, buf, term) \ @@ -208,62 +207,48 @@ RSET rset_dup (RSET rs); /* int rset_type (RSET) */ #define rset_type(rs) ((rs)->control->desc) -RSET rstemp_create( NMEM nmem, const struct key_control *kcontrol, +/** rset_count counts or estimates the keys in it*/ +zint rset_count(RSET rs); + +RSET rstemp_create(NMEM nmem, const struct key_control *kcontrol, int scope, - const char *temp_path); + const char *temp_path, TERMID term); RSET rsnull_create(NMEM nmem, const struct key_control *kcontrol); -RSET rsbool_create_and( NMEM nmem, const struct key_control *kcontrol, - int scope, - RSET rset_l, RSET rset_r); - -RSET rsbool_create_or ( NMEM nmem, const struct key_control *kcontrol, - int scope, - RSET rset_l, RSET rset_r); +RSET rsbool_create_and(NMEM nmem, const struct key_control *kcontrol, + int scope, RSET rset_l, RSET rset_r); -RSET rsbool_create_not( NMEM nmem, const struct key_control *kcontrol, - int scope, - RSET rset_l, RSET rset_r); +RSET rsbool_create_or (NMEM nmem, const struct key_control *kcontrol, + int scope, RSET rset_l, RSET rset_r); -RSET rsbetween_create( NMEM nmem, const struct key_control *kcontrol, - int scope, - RSET rset_l, RSET rset_m, RSET rset_r, - RSET rset_attr); +RSET rsbool_create_not(NMEM nmem, const struct key_control *kcontrol, + int scope, RSET rset_l, RSET rset_r); -RSET rsmultior_create( NMEM nmem, const struct key_control *kcontrol, - int scope, - int no_rsets, RSET* rsets); +RSET rsbetween_create(NMEM nmem, const struct key_control *kcontrol, + int scope, RSET rset_l, RSET rset_m, RSET rset_r, + RSET rset_attr); -RSET rsmultiand_create( NMEM nmem, const struct key_control *kcontrol, - int scope, - int no_rsets, RSET* rsets); +RSET rsmulti_or_create(NMEM nmem, const struct key_control *kcontrol, + int scope, int no_rsets, RSET* rsets); -RSET rsprox_create( NMEM nmem, const struct key_control *kcontrol, - int scope, - int rset_no, RSET *rset, - int ordered, int exclusion, - int relation, int distance); +RSET rsmulti_and_create(NMEM nmem, const struct key_control *kcontrol, + int scope, int no_rsets, RSET* rsets); -RSET rsisamb_create( NMEM nmem, const struct key_control *kcontrol, - int scope, - ISAMB is, ISAMB_P pos, - TERMID term); +RSET rsprox_create(NMEM nmem, const struct key_control *kcontrol, + int scope, int rset_no, RSET *rset, + int ordered, int exclusion, int relation, int distance); -RSET rsisamc_create( NMEM nmem, const struct key_control *kcontrol, - int scope, - ISAMC is, ISAMC_P pos, - TERMID term); +RSET rsisamb_create(NMEM nmem, const struct key_control *kcontrol, + int scope, ISAMB is, ISAMB_P pos, TERMID term); -RSET rsisams_create( NMEM nmem, const struct key_control *kcontrol, - int scope, - ISAMS is, ISAMS_P pos, - TERMID term); +RSET rsisamc_create(NMEM nmem, const struct key_control *kcontrol, + int scope, ISAMC is, ISAMC_P pos, TERMID term); +RSET rsisams_create(NMEM nmem, const struct key_control *kcontrol, + int scope, ISAMS is, ISAMS_P pos, TERMID term); -#ifdef __cplusplus -} -#endif +YAZ_END_CDECL #endif