X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Ffilter_zoom.cpp;h=2d65d7d1f5cc4b6251d35f58bcb1c574cf323ff9;hb=bef823971eb13cedea9a6d26a3fd782514cfeb2f;hp=e9b0f75a1f2ec1641df189e3c5cc9104ea1dfdeb;hpb=a5dc369fbffd8e27cde8557a7aa640dc0f222aef;p=metaproxy-moved-to-github.git diff --git a/src/filter_zoom.cpp b/src/filter_zoom.cpp index e9b0f75..2d65d7d 100644 --- a/src/filter_zoom.cpp +++ b/src/filter_zoom.cpp @@ -374,7 +374,7 @@ void yf::Zoom::Backend::search(ZOOM_query q, Odr_int *hits, ODR odr) { ZOOM_resultset_destroy(m_resultset); - + m_resultset = 0; if (*flp) { WRBUF w = wrbuf_alloc(); @@ -426,14 +426,23 @@ void yf::Zoom::Backend::search(ZOOM_query q, Odr_int *hits, ae->value.complex->semanticAction = 0; int num_terms = ZOOM_facet_field_term_count(ff); - fl->elements[i] = facet_field_create(odr, al, num_terms); + fl->elements[i] = (Z_FacetField *) + odr_malloc(odr, sizeof(Z_FacetField)); + fl->elements[i]->attributes = al; + fl->elements[i]->num_terms = num_terms; + fl->elements[i]->terms = (Z_FacetTerm **) + odr_malloc(odr, num_terms * sizeof(Z_FacetTerm *)); int j; for (j = 0; j < num_terms; j++) { int freq; const char *a_term = ZOOM_facet_field_get_term(ff, j, &freq); - fl->elements[i]->terms[j] = - facet_term_create_cstr(odr, a_term, freq); + Z_FacetTerm *ft = (Z_FacetTerm *) odr_malloc(odr, sizeof(*ft)); + ft->term = z_Term_create(odr, Z_Term_general, a_term, + strlen(a_term)); + ft->count = odr_intdup(odr, freq); + + fl->elements[i]->terms[j] = ft; } } fl->num = i;