X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzebraapi.c;h=7e7bb799529513f6daec1eedecd38a38b5f1a44d;hb=85c5e09eacc5c89eda6e1ffa6f039fa1e8dd7221;hp=a8e803991a54d646f6052f877d2d126acc27c43f;hpb=0f563f23506dabd7c84bdb750d4539b2b6cacf02;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.c b/index/zebraapi.c index a8e8039..7e7bb79 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -1,4 +1,4 @@ -/* $Id: zebraapi.c,v 1.243 2007-01-16 15:01:15 adam Exp $ +/* $Id: zebraapi.c,v 1.248 2007-02-06 09:34:56 adam Exp $ Copyright (C) 1995-2007 Index Data ApS @@ -143,6 +143,9 @@ ZebraHandle zebra_open(ZebraService zs, Res res) zh->m_staticrank = 0; zh->m_segment_indexing = 0; + zh->break_handler_func = 0; + zh->break_handler_data = 0; + default_encoding = res_get_def(zh->session_res, "encoding", "ISO-8859-1"); zh->iconv_to_utf8 = @@ -1015,6 +1018,21 @@ ZEBRA_RES zebra_set_approx_limit(ZebraHandle zh, zint approx_limit) return ZEBRA_OK; } +void zebra_set_partial_result(ZebraHandle zh) +{ + zh->partial_result = 1; +} + + +ZEBRA_RES zebra_set_break_handler(ZebraHandle zh, + int (*f)(void *client_data), + void *client_data) +{ + zh->break_handler_func = f; + zh->break_handler_data = client_data; + return ZEBRA_OK; +} + ZEBRA_RES zebra_search_RPN_x(ZebraHandle zh, ODR o, Z_RPNQuery *query, const char *setname, zint *hits, int *estimated_hit_count, @@ -1030,12 +1048,16 @@ ZEBRA_RES zebra_search_RPN_x(ZebraHandle zh, ODR o, Z_RPNQuery *query, assert(setname); yaz_log(log_level, "zebra_search_rpn"); + zh->partial_result = 0; + if (zebra_begin_read(zh) == ZEBRA_FAIL) return ZEBRA_FAIL; r = resultSetAddRPN(zh, odr_extract_mem(o), query, zh->num_basenames, zh->basenames, setname, - hits, estimated_hit_count, partial_resultset); + hits, estimated_hit_count); + + *partial_resultset = zh->partial_result; zebra_end_read(zh); return r; } @@ -1694,7 +1716,7 @@ static void read_res_for_transaction(ZebraHandle zh) v = res_get_prefix(zh->res, "openRW", group, "1"); zh->m_flag_rw = atoi(v); - v = res_get_prefix(zh->res, "fileVerboseLimit", group, "100000"); + v = res_get_prefix(zh->res, "fileVerboseLimit", group, "1000"); zh->m_file_verbose_limit = atoi(v); } @@ -1753,6 +1775,7 @@ ZEBRA_RES zebra_begin_trans(ZebraHandle zh, int rw) zh->records_updated = 0; zh->records_deleted = 0; zh->records_processed = 0; + zh->records_skipped = 0; #if HAVE_SYS_TIMES_H times (&zh->tms1);