projects
/
idzebra-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Ignoer zebrasrv.pid
[idzebra-moved-to-github.git]
/
index
/
zsets.c
diff --git
a/index/zsets.c
b/index/zsets.c
index
3ec27f7
..
024113e
100644
(file)
--- a/
index/zsets.c
+++ b/
index/zsets.c
@@
-1,4
+1,4
@@
-/* $Id: zsets.c,v 1.86 2005-06-06 21:31:08 adam Exp $
+/* $Id: zsets.c,v 1.89 2005-06-09 10:39:53 adam Exp $
Copyright (C) 1995-2005
Index Data ApS
Copyright (C) 1995-2005
Index Data ApS
@@
-62,6
+62,7
@@
struct zebra_set {
zint cache_position; /* last position */
RSFD cache_rfd; /* rfd (NULL if not existing) */
zint cache_psysno; /* sysno for last position */
zint cache_position; /* last position */
RSFD cache_rfd; /* rfd (NULL if not existing) */
zint cache_psysno; /* sysno for last position */
+ zint approx_limit; /* limit before we do approx */
};
struct zset_sort_entry {
};
struct zset_sort_entry {
@@
-128,6
+129,7
@@
ZEBRA_RES resultSetSearch(ZebraHandle zh, NMEM nmem, NMEM rset_nmem,
for (i = 0; sort_sequence->specs[i]; i++)
;
sort_sequence->num_specs = i;
for (i = 0; sort_sequence->specs[i]; i++)
;
sort_sequence->num_specs = i;
+ rset->hits_limit = sset->approx_limit;
if (!i)
{
res = resultSetRank (zh, sset, rset, rset_nmem);
if (!i)
{
res = resultSetRank (zh, sset, rset, rset_nmem);
@@
-152,7
+154,7
@@
ZEBRA_RES resultSetAddRPN (ZebraHandle zh, NMEM m, Z_RPNQuery *rpn,
zh->hits = 0;
zh->hits = 0;
- zebraSet = resultSetAdd (zh, setname, 1);
+ zebraSet = resultSetAdd(zh, setname, 1);
if (!zebraSet)
return ZEBRA_FAIL;
zebraSet->locked = 1;
if (!zebraSet)
return ZEBRA_FAIL;
zebraSet->locked = 1;
@@
-164,7
+166,7
@@
ZEBRA_RES resultSetAddRPN (ZebraHandle zh, NMEM m, Z_RPNQuery *rpn,
zebraSet->basenames =
nmem_malloc (zebraSet->nmem, num_bases * sizeof(*zebraSet->basenames));
for (i = 0; i<num_bases; i++)
zebraSet->basenames =
nmem_malloc (zebraSet->nmem, num_bases * sizeof(*zebraSet->basenames));
for (i = 0; i<num_bases; i++)
- zebraSet->basenames[i] = nmem_strdup (zebraSet->nmem, basenames[i]);
+ zebraSet->basenames[i] = nmem_strdup(zebraSet->nmem, basenames[i]);
res = resultSetSearch(zh, zebraSet->nmem, zebraSet->rset_nmem,
rpn, zebraSet);
res = resultSetSearch(zh, zebraSet->nmem, zebraSet->rset_nmem,
rpn, zebraSet);
@@
-205,7
+207,7
@@
void resultSetAddTerm (ZebraHandle zh, ZebraSet s, int reg_type,
(s->hits)++;
}
(s->hits)++;
}
-ZebraSet resultSetAdd (ZebraHandle zh, const char *name, int ov)
+ZebraSet resultSetAdd(ZebraHandle zh, const char *name, int ov)
{
ZebraSet s;
int i;
{
ZebraSet s;
int i;
@@
-267,10
+269,11
@@
ZebraSet resultSetAdd (ZebraHandle zh, const char *name, int ov)
s->rpn = 0;
s->cache_position = 0;
s->cache_rfd = 0;
s->rpn = 0;
s->cache_position = 0;
s->cache_rfd = 0;
+ s->approx_limit = zh->approx_limit;
return s;
}
return s;
}
-ZebraSet resultSetGet (ZebraHandle zh, const char *name)
+ZebraSet resultSetGet(ZebraHandle zh, const char *name)
{
ZebraSet s;
{
ZebraSet s;
@@
-313,7
+316,7
@@
void resultSetInvalidate (ZebraHandle zh)
}
}
}
}
-void resultSetDestroy (ZebraHandle zh, int num, char **names,int *statuses)
+void resultSetDestroy(ZebraHandle zh, int num, char **names,int *statuses)
{
ZebraSet * ss = &zh->sets;
int i;
{
ZebraSet * ss = &zh->sets;
int i;
@@
-848,6
+851,7
@@
ZEBRA_RES resultSetRank(ZebraHandle zh, ZebraSet zebraSet,
RSFD rfd = rset_open(rset, RSETF_READ);
struct rank_control *rc = rank_class->control;
double score;
RSFD rfd = rset_open(rset, RSETF_READ);
struct rank_control *rc = rank_class->control;
double score;
+ zint count = 0;
void *handle =
(*rc->begin) (zh->reg, rank_class->class_handle, rset, nmem,
void *handle =
(*rc->begin) (zh->reg, rank_class->class_handle, rset, nmem,
@@
-868,6
+872,7
@@
ZEBRA_RES resultSetRank(ZebraHandle zh, ZebraSet zebraSet,
{
score = (*rc->calc) (handle, psysno);
resultSetInsertRank (zh, sort_info, psysno, score, 'A');
{
score = (*rc->calc) (handle, psysno);
resultSetInsertRank (zh, sort_info, psysno, score, 'A');
+ count++;
}
psysno = this_sys;
}
}
psysno = this_sys;
}
@@
-877,6
+882,7
@@
ZEBRA_RES resultSetRank(ZebraHandle zh, ZebraSet zebraSet,
{
score = (*rc->calc)(handle, psysno);
resultSetInsertRank(zh, sort_info, psysno, score, 'A');
{
score = (*rc->calc)(handle, psysno);
resultSetInsertRank(zh, sort_info, psysno, score, 'A');
+ count++;
}
(*rc->end) (zh->reg, handle);
rset_close (rfd);
}
(*rc->end) (zh->reg, handle);
rset_close (rfd);
@@
-1033,8
+1039,8
@@
ZEBRA_RES zebra_result_set_term_info(ZebraHandle zh, const char *setname,
return ZEBRA_FAIL;
}
return ZEBRA_FAIL;
}
-ZEBRA_RES zebra_get_hit_vector(ZebraHandle zh, const char *setname,
- zint sysno)
+ZEBRA_RES zebra_snippets_hit_vector(ZebraHandle zh, const char *setname,
+ zint sysno, zebra_snippets *snippets)
{
ZebraSet sset = resultSetGet(zh, setname);
yaz_log(YLOG_LOG, "zebra_get_hit_vector setname=%s zysno=" ZINT_FORMAT,
{
ZebraSet sset = resultSetGet(zh, setname);
yaz_log(YLOG_LOG, "zebra_get_hit_vector setname=%s zysno=" ZINT_FORMAT,
@@
-1073,15
+1079,18
@@
ZEBRA_RES zebra_get_hit_vector(ZebraHandle zh, const char *setname,
if (termid)
{
struct ord_list *ol;
if (termid)
{
struct ord_list *ol;
- key_logdump_txt(YLOG_LOG, &key, termid->name);
- yaz_log(YLOG_LOG, " type=%d", termid->type);
for (ol = termid->ol; ol; ol = ol->next)
for (ol = termid->ol; ol; ol = ol->next)
- yaz_log(YLOG_LOG, " ord=%d", ol->ord);
+ {
+ zebra_snippets_append(snippets, key.mem[key.len-1],
+ termid->reg_type,
+ ol->ord, termid->name);
+ }
}
}
rset_close(rsfd);
rset_delete(rset_comb);
}
}
rset_close(rsfd);
rset_delete(rset_comb);
+ nmem_destroy(nmem);
}
return ZEBRA_OK;
}
}
return ZEBRA_OK;
}