-/* $Id: retrieve.c,v 1.75 2007-10-31 16:56:14 adam Exp $
+/* $Id: retrieve.c,v 1.76 2007-11-30 12:19:08 adam Exp $
Copyright (C) 1995-2007
Index Data ApS
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,
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);
if (rec)
{
- zebra_rec_keys_t reckeys = zebra_rec_keys_open();
RecType rt;
struct recRetrieveCtrl retrieveCtrl;
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)))
*addinfo = retrieveCtrl.addinfo;
}
- zebra_snippets_destroy(retrieveCtrl.doc_snippet);
-
stream.destroy(&stream);
rec_free(&rec);
}