X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fsolr.c;h=a7cdb524fd3c5db7aeb6131362df4c730f8ab8c4;hp=1783440362f188a0f9accea0f35a6a6a8e4ce9db;hb=5e1889250160764822014ce89ee19dc84e5ce310;hpb=96e65728eefb6d7efef6e2f74a3b0d64f92b3c23 diff --git a/src/solr.c b/src/solr.c index 1783440..a7cdb52 100644 --- a/src/solr.c +++ b/src/solr.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "sru-p.h" @@ -113,7 +114,8 @@ int yaz_solr_decode_response(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_response(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;