X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=include%2Frset.h;h=f6d4bc19b97f31e6da653daf7eadcfe60a42b61b;hp=b37becc210123db59265bb283def7fa33194f433;hb=24357780de7d01b3c3ec2c3f6715b2feee7d0e76;hpb=1285f0f6eeb151a62b69d8d3381c54ace03e55d4 diff --git a/include/rset.h b/include/rset.h index b37becc..f6d4bc1 100644 --- a/include/rset.h +++ b/include/rset.h @@ -1,8 +1,5 @@ -/* $Id: rset.h,v 1.55 2005-06-07 07:41:04 adam Exp $ - Copyright (C) 1995-2005 - Index Data ApS - -This file is part of the Zebra server. +/* This file is part of the Zebra server. + Copyright (C) 1994-2011 Index Data Zebra is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -15,9 +12,9 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Zebra; see the file LICENSE.zebra. If not, write to the -Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ #ifndef RSET_H @@ -43,6 +40,7 @@ struct ord_list { struct ord_list *ord_list_create(NMEM nmem); struct ord_list *ord_list_append(NMEM nmem, struct ord_list *list, int ord); struct ord_list *ord_list_dup(NMEM nmem, struct ord_list *list); +void ord_list_print(struct ord_list *list); /** * rset_term is all we need to know of a term to do ranking etc. @@ -58,14 +56,18 @@ struct rset_term { This info is used to return encoded term back for search-result-1 . */ + int reg_type; /** register type */ RSET rset; /** the rset corresponding to this term */ void *rankpriv;/** private stuff for the ranking algorithm */ + zint hits_limit;/** limit for hits if > 0 */ + char *ref_id; /** reference for this term */ struct ord_list *ol; }; typedef struct rset_term *TERMID; TERMID rset_term_create (const char *name, int length, const char *flags, - int type, NMEM nmem, struct ord_list *ol); + int type, NMEM nmem, struct ord_list *ol, + int reg_type, zint hits_limit, const char *ref_id); /** rsfd is a "file descriptor" for reading from a rset */ struct rsfd { /* the stuff common to all rsfd's. */ @@ -129,6 +131,7 @@ struct rset_key_control { int (*cmp)(const void *p1, const void *p2); void (*key_logdump_txt) (int logmask, const void *p, const char *txt); zint (*getseq)(const void *p); + zint (*get_segment)(const void *p); int (*filter_func)(const void *p, void *data); void *filter_data; void (*inc)(struct rset_key_control *kc); @@ -222,33 +225,27 @@ void rset_close(RSFD rfd); /** rset_count counts or estimates the keys in it*/ zint rset_count(RSET rs); -RSET rstemp_create(NMEM nmem, struct rset_key_control *kcontrol, - int scope, const char *temp_path, TERMID term); - -RSET rsnull_create(NMEM nmem, struct rset_key_control *kcontrol, TERMID term); - -RSET rsbool_create_and(NMEM nmem, struct rset_key_control *kcontrol, - int scope, RSET rset_l, RSET rset_r); +RSET rset_create_temp(NMEM nmem, struct rset_key_control *kcontrol, + int scope, const char *temp_path, TERMID term); -RSET rsbool_create_or(NMEM nmem, struct rset_key_control *kcontrol, - int scope, RSET rset_l, RSET rset_r); +RSET rset_create_null(NMEM nmem, struct rset_key_control *kcontrol, TERMID term); -RSET rsbool_create_not(NMEM nmem, struct rset_key_control *kcontrol, - int scope, RSET rset_l, RSET rset_r); +RSET rset_create_not(NMEM nmem, struct rset_key_control *kcontrol, + int scope, RSET rset_l, RSET rset_r); -RSET rsbetween_create(NMEM nmem, struct rset_key_control *kcontrol, - int scope, RSET rset_l, RSET rset_m, RSET rset_r, - RSET rset_attr); +RSET rset_create_between(NMEM nmem, struct rset_key_control *kcontrol, + int scope, RSET rset_l, RSET rset_m, RSET rset_r, + RSET rset_attr); -RSET rsmulti_or_create(NMEM nmem, struct rset_key_control *kcontrol, - int scope, TERMID termid, int no_rsets, RSET* rsets); +RSET rset_create_or(NMEM nmem, struct rset_key_control *kcontrol, + int scope, TERMID termid, int no_rsets, RSET* rsets); -RSET rsmulti_and_create(NMEM nmem, struct rset_key_control *kcontrol, - int scope, int no_rsets, RSET* rsets); +RSET rset_create_and(NMEM nmem, struct rset_key_control *kcontrol, + int scope, int no_rsets, RSET* rsets); -RSET rsprox_create(NMEM nmem, struct rset_key_control *kcontrol, - int scope, int rset_no, RSET *rset, - int ordered, int exclusion, int relation, int distance); +RSET rset_create_prox(NMEM nmem, struct rset_key_control *kcontrol, + int scope, int rset_no, RSET *rset, + int ordered, int exclusion, int relation, int distance); RSET rsisamb_create(NMEM nmem, struct rset_key_control *kcontrol, int scope, ISAMB is, ISAM_P pos, TERMID term); @@ -261,6 +258,17 @@ RSET rsisams_create(NMEM nmem, struct rset_key_control *kcontrol, void rset_visit(RSET rset, int level); +void rset_set_hits_limit(RSET rs, zint l); + YAZ_END_CDECL #endif +/* + * Local variables: + * c-basic-offset: 4 + * c-file-style: "Stroustrup" + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +