-/* $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-2010 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
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
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.
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. */
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);
/** 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);
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
+ */
+