X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fretrieve.c;h=364bd23fca2449cb1151afcef7662de85c82c26a;hb=cd405b18db3526be1855d7e14a598616237a4b2e;hp=cd872357c42a5e1f5527c5dc9eaf3dd3f978a01f;hpb=2eacaa1e549428b231de5844f397466f6a44c59f;p=idzebra-moved-to-github.git diff --git a/index/retrieve.c b/index/retrieve.c index cd87235..364bd23 100644 --- a/index/retrieve.c +++ b/index/retrieve.c @@ -1,4 +1,4 @@ -/* $Id: retrieve.c,v 1.74 2007-10-29 16:57:53 adam Exp $ +/* $Id: retrieve.c,v 1.76 2007-11-30 12:19:08 adam Exp $ Copyright (C) 1995-2007 Index Data ApS @@ -186,7 +186,7 @@ int zebra_special_sort_fetch(ZebraHandle zh, zint sysno, ODR odr, zebraExplain_lookup_ord(zh->reg->zei, ord, &index_type, &db, &string_index); - zebra_term_untrans(zh, *index_type, dst_buf, str); + zebra_term_untrans(zh, index_type, dst_buf, str); if (!oid_oidcmp(input_format, yaz_oid_recsyn_xml)) { @@ -326,7 +326,7 @@ int zebra_special_index_fetch(ZebraHandle zh, zint sysno, ODR odr, if (retrieval_type == 0 || !strcmp(retrieval_type_cstr, index_type)) { - zebra_term_untrans(zh, *index_type, dst_buf, str); + zebra_term_untrans(zh, index_type, dst_buf, str); if (strlen(dst_buf)) { if (!oid_oidcmp(input_format, yaz_oid_recsyn_xml)) @@ -703,7 +703,7 @@ int zebra_special_fetch(ZebraHandle zh, const char *setname, int zebra_record_fetch(ZebraHandle zh, const char *setname, zint sysno, int score, - zebra_snippets *hit_snippet, ODR odr, + ODR odr, const Odr_oid *input_format, Z_RecordComposition *comp, const Odr_oid **output_format, char **rec_bufp, int *rec_lenp, char **basenamep, @@ -716,7 +716,15 @@ int zebra_record_fetch(ZebraHandle zh, const char *setname, RecordAttr *recordAttr; void *clientData; int return_code = 0; + zint sysnos[10]; + int no_sysnos = 10; + ZEBRA_RES res; + res = zebra_result_recid_to_sysno(zh, setname, sysno, sysnos, &no_sysnos); + if (res != ZEBRA_OK) + return ZEBRA_FAIL; + + sysno = sysnos[0]; *basenamep = 0; *addinfo = 0; elemsetname = yaz_get_esn(comp); @@ -754,7 +762,6 @@ int zebra_record_fetch(ZebraHandle zh, const char *setname, if (rec) { - zebra_rec_keys_t reckeys = zebra_rec_keys_open(); RecType rt; struct recRetrieveCtrl retrieveCtrl; @@ -774,15 +781,6 @@ int zebra_record_fetch(ZebraHandle zh, const char *setname, retrieveCtrl.res = zh->res; retrieveCtrl.rec_buf = 0; retrieveCtrl.rec_len = -1; - retrieveCtrl.hit_snippet = hit_snippet; - retrieveCtrl.doc_snippet = zebra_snippets_create(); - - zebra_rec_keys_set_buf(reckeys, - rec->info[recInfo_delKeys], - rec->size[recInfo_delKeys], - 0); - zebra_rec_keys_to_snippets(zh, reckeys, retrieveCtrl.doc_snippet); - zebra_rec_keys_close(reckeys); if (!(rt = recType_byName(zh->reg->recTypes, zh->res, file_type, &clientData))) @@ -806,8 +804,6 @@ int zebra_record_fetch(ZebraHandle zh, const char *setname, *addinfo = retrieveCtrl.addinfo; } - zebra_snippets_destroy(retrieveCtrl.doc_snippet); - stream.destroy(&stream); rec_free(&rec); }