X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fsolr.c;h=a7cdb524fd3c5db7aeb6131362df4c730f8ab8c4;hp=1fa0d381749fa273a73a64d0562a3488d7b6eab9;hb=5e1889250160764822014ce89ee19dc84e5ce310;hpb=2ad2651374674c895ad59b267da6fe2d8665fabd diff --git a/src/solr.c b/src/solr.c index 1fa0d38..a7cdb52 100644 --- a/src/solr.c +++ b/src/solr.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "sru-p.h" @@ -20,7 +21,7 @@ #include #endif -int yaz_solr_decode(ODR o, Z_HTTP_Response *hres, Z_SRW_PDU **pdup) +int yaz_solr_decode_response(ODR o, Z_HTTP_Response *hres, Z_SRW_PDU **pdup) { #if YAZ_HAVE_XML2 const char *content_buf = hres->content_buf; @@ -113,7 +114,8 @@ int yaz_solr_decode(ODR o, Z_HTTP_Response *hres, Z_SRW_PDU **pdup) record->recordData_buf = odr_malloc(o, buf->use + 1); memcpy(record->recordData_buf, buf->content, buf->use); record->recordData_buf[buf->use] = '\0'; - record->recordPosition = odr_intdup(o, start + offset); + // TODO Solve the real problem: Making the recordPosition 1-based due to "funny" code in zoom-sru + record->recordPosition = odr_intdup(o, start + offset + 1); xmlBufferFree(buf); @@ -132,8 +134,8 @@ int yaz_solr_decode(ODR o, Z_HTTP_Response *hres, Z_SRW_PDU **pdup) #endif } -int yaz_solr_encode(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, - ODR encode, const char *charset) +int yaz_solr_encode_request(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, + ODR encode, const char *charset) { const char *solr_op = 0; char *name[30], *value[30]; @@ -170,6 +172,8 @@ int yaz_solr_encode(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, } yaz_add_name_value_int(encode, name, value, &i, "rows", srw_pdu->u.request->maximumRecords); + yaz_add_name_value_str(encode, name, value, &i, + "fl", srw_pdu->u.request->recordSchema); break; default: return -1;