* Sebastian Hammer, Adam Dickmeiss
*
* $Log: rsrel.h,v $
- * Revision 1.4 1997-09-05 15:30:05 adam
+ * Revision 1.5 1997-09-22 12:39:06 adam
+ * Added get_pos method for the ranked result sets.
+ *
+ * Revision 1.4 1997/09/05 15:30:05 adam
* Changed prototype for chr_map_input - added const.
* Added support for C++, headers uses extern "C" for public definitions.
*
ISAM_P *isam_positions;
int no_isam_positions;
- int no_terms;
- int *term_no;
+ int no_terms;
+ int *term_no;
+ int (*get_pos)(const void *p);
} rset_relevance_parms;
#ifdef __cplusplus
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: index.h,v $
- * Revision 1.51 1997-09-18 08:59:19 adam
+ * Revision 1.52 1997-09-22 12:39:06 adam
+ * Added get_pos method for the ranked result sets.
+ *
+ * Revision 1.51 1997/09/18 08:59:19 adam
* Extra generic handle for the character mapping routines.
*
* Revision 1.50 1997/09/17 12:19:13 adam
void key_open (BFiles bfs, int mem);
int key_close (void);
int key_compare (const void *p1, const void *p2);
+int key_get_pos (const void *p);
int key_compare_it (const void *p1, const void *p2);
int key_qsort_compare (const void *p1, const void *p2);
void key_logdump (int mask, const void *p);
/*
- * Copyright (C) 1994-1996, Index Data I/S
+ * Copyright (C) 1994-1997, Index Data I/S
* All rights reserved.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: kcompare.c,v $
- * Revision 1.21 1997-09-17 12:19:13 adam
+ * Revision 1.22 1997-09-22 12:39:06 adam
+ * Added get_pos method for the ranked result sets.
+ *
+ * Revision 1.21 1997/09/17 12:19:13 adam
* Zebra version corresponds to YAZ version 1.4.
* Changed Zebra server so that it doesn't depend on global common_resource.
*
return cp1[l] - cp2[l];
}
+int key_get_pos (const void *p)
+{
+ struct it_key key;
+ memcpy (&key, p, sizeof(key));
+ return key.seqno;
+}
+
struct iscz1_code_info {
struct it_key key;
};
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: trunc.c,v $
- * Revision 1.5 1997-09-17 12:19:17 adam
+ * Revision 1.6 1997-09-22 12:39:06 adam
+ * Added get_pos method for the ranked result sets.
+ *
+ * Revision 1.5 1997/09/17 12:19:17 adam
* Zebra version corresponds to YAZ version 1.4.
* Changed Zebra server so that it doesn't depend on global common_resource.
*
RSET rset_trunc (ZServerInfo *zi, ISAM_P *isam_p, int no)
{
- logf (LOG_LOG, "rset_trunc no=%d", no);
+ logf (LOG_DEBUG, "rset_trunc no=%d", no);
if (zi->isam)
{
if (no < 1)
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: zrpn.c,v $
- * Revision 1.64 1997-09-18 08:59:20 adam
+ * Revision 1.65 1997-09-22 12:39:06 adam
+ * Added get_pos method for the ranked result sets.
+ *
+ * Revision 1.64 1997/09/18 08:59:20 adam
* Extra generic handle for the character mapping routines.
*
* Revision 1.63 1997/09/17 12:19:18 adam
parms.key_size = sizeof(struct it_key);
parms.max_rec = 1000;
parms.cmp = key_compare_it;
+ parms.get_pos = key_get_pos;
parms.is = zi->isam;
parms.isc = zi->isamc;
parms.no_terms = 0;
/*
- * Copyright (C) 1994-1995, Index Data I/S
+ * Copyright (C) 1994-1997, Index Data I/S
* All rights reserved.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: rsrel.c,v $
- * Revision 1.16 1997-09-17 12:19:23 adam
+ * Revision 1.17 1997-09-22 12:39:07 adam
+ * Added get_pos method for the ranked result sets.
+ *
+ * Revision 1.16 1997/09/17 12:19:23 adam
* Zebra version corresponds to YAZ version 1.4.
* Changed Zebra server so that it doesn't depend on global common_resource.
*
int max_rec;
int no_rec;
int (*cmp)(const void *p1, const void *p2);
+ int (*get_pos)(const void *p);
char *key_buf; /* key buffer */
float *score_buf; /* score buffer */
int *sort_idx; /* score sorted index */
#if 0
while (1)
{
- int min = -1;
+ int r, min = -1;
int pos = 0;
for (i = 0; i<parms->no_isam_positions; i++)
if (isam_r[i] &&
min = i;
if (min < 0)
break;
- pos = (*parms->get_pos)(isam_buf[min]);
+ i = min;
+ pos = (*parms->get_pos)(isam_buf[i]);
+ logf (LOG_LOG, "pos=%d", pos);
+ if (isam_pt)
+ isam_r[i] = is_readkey (isam_pt[i], isam_buf[i]);
+ else if (isamc_pp)
+ isam_r[i] = isc_pp_read (isamc_pp[i], isam_buf[i]);
+ }
#else
while (1)
{
info->max_rec = r_parms->max_rec;
assert (info->max_rec > 1);
info->cmp = r_parms->cmp;
+ info->get_pos = r_parms->get_pos;
info->key_buf = xmalloc (info->key_size * info->max_rec);
info->score_buf = xmalloc (sizeof(*info->score_buf) * info->max_rec);