X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=index%2Frpnsearch.c;h=872cf8bbbf59f1c9ecb65bc8a12ec6be4b6a65ab;hp=3fbaa8368420ed720e4929bdc960d15570dbb480;hb=3bb2fd863b1664f1ff71dadb540313f301ca234f;hpb=ac13dceecd5f75669820819575daf88e0add5c8d diff --git a/index/rpnsearch.c b/index/rpnsearch.c index 3fbaa83..872cf8b 100644 --- a/index/rpnsearch.c +++ b/index/rpnsearch.c @@ -433,7 +433,7 @@ static int term_102(zebra_map_t zm, const char **src, } -/* term_104: handle term, process # and ! */ +/* term_104: handle term, process ?n * # */ static int term_104(zebra_map_t zm, const char **src, WRBUF term_dict, int space_split, WRBUF display_term) { @@ -502,7 +502,7 @@ static int term_104(zebra_map_t zm, const char **src, return i; } -/* term_105/106: handle term, where trunc = Process * and ! and right trunc */ +/* term_105/106: handle term, process * ! and possibly right_truncate */ static int term_105(zebra_map_t zm, const char **src, WRBUF term_dict, int space_split, WRBUF display_term, int right_truncate) @@ -1147,7 +1147,7 @@ static ZEBRA_RES string_term(ZebraHandle zh, Z_AttributesPlusTerm *zapt, } wrbuf_putc(term_dict, ')'); break; - case 104: /* process # and ! in term */ + case 104: /* process ?n * # term */ wrbuf_putc(term_dict, '('); if (!term_104(zm, &termp, term_dict, space_split, display_term)) { @@ -1156,7 +1156,7 @@ static ZEBRA_RES string_term(ZebraHandle zh, Z_AttributesPlusTerm *zapt, } wrbuf_putc(term_dict, ')'); break; - case 105: /* process * and ! in term */ + case 105: /* process * ! in term and right truncate */ wrbuf_putc(term_dict, '('); if (!term_105(zm, &termp, term_dict, space_split, display_term, 1)) { @@ -1165,7 +1165,7 @@ static ZEBRA_RES string_term(ZebraHandle zh, Z_AttributesPlusTerm *zapt, } wrbuf_putc(term_dict, ')'); break; - case 106: /* process * and ! in term */ + case 106: /* process * ! in term */ wrbuf_putc(term_dict, '('); if (!term_105(zm, &termp, term_dict, space_split, display_term, 0)) { @@ -1811,6 +1811,7 @@ static ZEBRA_RES rpn_search_APT_numeric(ZebraHandle zh, Z_AttributesPlusTerm *zapt, const char *termz, const Odr_oid *attributeSet, + zint hits_limit, NMEM stream, const char *index_type, int complete_flag, @@ -1826,7 +1827,7 @@ static ZEBRA_RES rpn_search_APT_numeric(ZebraHandle zh, ZEBRA_RES res; struct grep_info grep_info; int alloc_sets = 0; - zint hits_limit_value; + zint hits_limit_value = hits_limit; const char *term_ref_id_str = 0; zebra_term_limits_APT(zh, zapt, &hits_limit_value, &term_ref_id_str, @@ -2383,7 +2384,8 @@ static ZEBRA_RES rpn_search_database(ZebraHandle zh, } else if (!strcmp(search_type, "numeric")) { - res = rpn_search_APT_numeric(zh, zapt, termz, attributeSet, stream, + res = rpn_search_APT_numeric(zh, zapt, termz, attributeSet, hits_limit, + stream, index_type, complete_flag, rank_type, xpath_use, rset_nmem,