X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzebraapi.c;h=76ffe45e2748b1f537b758c3bf0494c92bf3a146;hb=b27fc3cd78e802f8c50354e527bf4ce902171486;hp=24ae25f46961e104c7e74aea8b8768404649467e;hpb=004bd919116b88cd6dfd0594de51bde7d62296be;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.c b/index/zebraapi.c index 24ae25f..76ffe45 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -1,4 +1,4 @@ -/* $Id: zebraapi.c,v 1.156 2005-03-17 08:31:53 adam Exp $ +/* $Id: zebraapi.c,v 1.160 2005-04-14 12:02:08 adam Exp $ Copyright (C) 1995-2005 Index Data ApS @@ -345,10 +345,10 @@ struct zebra_register *zebra_register_open (ZebraService zs, const char *name, if (res_get_match (res, "isam", "c", ISAM_DEFAULT)) { struct ISAMC_M_s isamc_m; - if (!(reg->isamc = isc_open (reg->bfs, FNAME_ISAMC, + if (!(reg->isamc = isamc_open (reg->bfs, FNAME_ISAMC, rw, key_isamc_m(res, &isamc_m)))) { - yaz_log (YLOG_WARN, "isc_open failed"); + yaz_log (YLOG_WARN, "isamc_open failed"); return 0; } } @@ -439,7 +439,7 @@ static void zebra_register_close (ZebraService zs, struct zebra_register *reg) if (reg->isams) isams_close (reg->isams); if (reg->isamc) - isc_close (reg->isamc); + isamc_close (reg->isamc); if (reg->isamb) isamb_close (reg->isamb); rec_close (®->records); @@ -876,7 +876,7 @@ int zebra_records_retrieve (ZebraHandle zh, ODR stream, assert(recs); assert(num_recs>0); - yaz_log(log_level, "zebra_records_retrieve n=%d",num_recs); + yaz_log(log_level, "zebra_records_retrieve n=%d", num_recs); zh->errCode = 0; if (!zh->res) @@ -919,10 +919,10 @@ int zebra_records_retrieve (ZebraHandle zh, ODR stream, char *buf; int len; recs[i].errCode = - zebra_record_fetch (zh, poset[i].sysno, poset[i].score, - stream, input_format, comp, - &recs[i].format, &buf, &len, - &recs[i].base, &recs[i].errString); + zebra_record_fetch(zh, poset[i].sysno, poset[i].score, + stream, input_format, comp, + &recs[i].format, &buf, &len, + &recs[i].base, &recs[i].errString); recs[i].len = len; if (len > 0) { @@ -952,10 +952,28 @@ int zebra_records_retrieve (ZebraHandle zh, ODR stream, return ret; } +int zebra_scan_PQF(ZebraHandle zh, ODR stream, const char *query, + int *position, int *num_entries, ZebraScanEntry **entries, + int *is_partial) +{ + YAZ_PQF_Parser pqf_parser = yaz_pqf_create (); + Z_AttributesPlusTerm *zapt; + int *attributeSet; + + if (!(zapt = yaz_pqf_scan(pqf_parser, stream, &attributeSet, query))) + { + yaz_pqf_destroy (pqf_parser); + return -1; + } + yaz_pqf_destroy (pqf_parser); + return zebra_scan(zh, stream, zapt, VAL_BIB1, + position, num_entries, entries, is_partial); +} + int zebra_scan (ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt, - oid_value attributeset, - int *position, int *num_entries, ZebraScanEntry **entries, - int *is_partial) + oid_value attributeset, + int *position, int *num_entries, ZebraScanEntry **entries, + int *is_partial) { ASSERTZH; assert(stream); @@ -1225,7 +1243,7 @@ int zebra_admin_exchange_record (ZebraHandle zh, int delete_w_handle(const char *info, void *handle) { ZebraHandle zh = (ZebraHandle) handle; - ISAMC_P pos; + ISAM_P pos; ASSERTZH; if (*info == sizeof(pos)) @@ -2101,7 +2119,7 @@ int zebra_search_PQF (ZebraHandle zh, const char *pqf_query, assert(pqf_query); assert(setname); - yaz_log(log_level, "zebra_search_PQF s=%s q=%s",setname, pqf_query); + yaz_log(log_level, "zebra_search_PQF s=%s q=%s", setname, pqf_query); query = p_query_rpn (odr, PROTO_Z3950, pqf_query);