YAZ 5.37.0
solr.c File Reference

Implements Solr decoding/encoding. More...

#include <stdlib.h>
#include <assert.h>
#include <yaz/srw.h>
#include <yaz/matchstr.h>
#include <yaz/yaz-iconv.h>
#include <yaz/log.h>
#include <yaz/facet.h>
#include <yaz/wrbuf.h>
#include <yaz/proto.h>
#include <yaz/nmem_xml.h>
#include "sru-p.h"
#include <libxml/parser.h>
#include <libxml/tree.h>

Go to the source code of this file.

Functions

static void extract_text_node (xmlNodePtr node, WRBUF wrbuf)
static int match_xml_node_attribute (xmlNodePtr ptr, const char *node_name, const char *attribute_name, const char *value)
static void yaz_solr_decode_result_docs (ODR o, xmlNodePtr ptr, Odr_int start, Z_SRW_searchRetrieveResponse *sr)
static int yaz_solr_decode_result (ODR o, xmlNodePtr ptr, Z_SRW_searchRetrieveResponse *sr)
static const char * get_facet_term_count (ODR o, xmlNodePtr node, Odr_int *freq)
Z_FacetFieldyaz_solr_decode_facet_field (ODR o, xmlNodePtr ptr, Z_SRW_searchRetrieveResponse *sr)
static int yaz_solr_decode_facet_counts (ODR o, xmlNodePtr root, Z_SRW_searchRetrieveResponse *sr)
static void yaz_solr_decode_suggestion_values (xmlNodePtr listPptr, WRBUF wrbuf)
static void yaz_solr_decode_suggestion_lst (xmlNodePtr lstPtr, WRBUF wrbuf)
static void yaz_solr_decode_misspelled (xmlNodePtr lstPtr, WRBUF wrbuf)
static int yaz_solr_decode_spellcheck (ODR o, xmlNodePtr spellcheckPtr, Z_SRW_searchRetrieveResponse *sr)
static int yaz_solr_decode_scan_result (ODR o, xmlNodePtr ptr, Z_SRW_scanResponse *scr)
static int yaz_solr_decode_error (ODR o, xmlNode *ptr, Z_SRW_searchRetrieveResponse *sr)
int yaz_solr_decode_response (ODR o, Z_HTTP_Response *hres, Z_SRW_PDU **pdup)
 decode SOLR response (HTTP)
static int yaz_solr_encode_facet_field (ODR encode, char **name, char **value, int *i, Z_FacetField *facet_field)
static int yaz_solr_encode_facet_list (ODR encode, char **name, char **value, int *i, Z_FacetList *facet_list)
int yaz_solr_encode_request (Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, ODR encode, const char *charset)
 encode SOLR request (HTTP)

Detailed Description

Implements Solr decoding/encoding.

Definition in file solr.c.

Function Documentation

◆ extract_text_node()

void extract_text_node ( xmlNodePtr node,
WRBUF wrbuf )
static

Definition at line 30 of file solr.c.

References wrbuf_xmlputs().

Referenced by yaz_solr_decode_suggestion_values().

◆ get_facet_term_count()

const char * get_facet_term_count ( ODR o,
xmlNodePtr node,
Odr_int * freq )
static

◆ match_xml_node_attribute()

int match_xml_node_attribute ( xmlNodePtr ptr,
const char * node_name,
const char * attribute_name,
const char * value )
static

◆ yaz_solr_decode_error()

◆ yaz_solr_decode_facet_counts()

int yaz_solr_decode_facet_counts ( ODR o,
xmlNodePtr root,
Z_SRW_searchRetrieveResponse * sr )
static

◆ yaz_solr_decode_facet_field()

◆ yaz_solr_decode_misspelled()

void yaz_solr_decode_misspelled ( xmlNodePtr lstPtr,
WRBUF wrbuf )
static

◆ yaz_solr_decode_response()

int yaz_solr_decode_response ( ODR o,
Z_HTTP_Response * hres,
Z_SRW_PDU ** pdup )

◆ yaz_solr_decode_result()

int yaz_solr_decode_result ( ODR o,
xmlNodePtr ptr,
Z_SRW_searchRetrieveResponse * sr )
static

◆ yaz_solr_decode_result_docs()

◆ yaz_solr_decode_scan_result()

◆ yaz_solr_decode_spellcheck()

int yaz_solr_decode_spellcheck ( ODR o,
xmlNodePtr spellcheckPtr,
Z_SRW_searchRetrieveResponse * sr )
static

◆ yaz_solr_decode_suggestion_lst()

void yaz_solr_decode_suggestion_lst ( xmlNodePtr lstPtr,
WRBUF wrbuf )
static

Definition at line 218 of file solr.c.

References match_xml_node_attribute(), and yaz_solr_decode_suggestion_values().

Referenced by yaz_solr_decode_misspelled().

◆ yaz_solr_decode_suggestion_values()

void yaz_solr_decode_suggestion_values ( xmlNodePtr listPptr,
WRBUF wrbuf )
static

Definition at line 198 of file solr.c.

References extract_text_node(), match_xml_node_attribute(), and wrbuf_puts().

Referenced by yaz_solr_decode_suggestion_lst().

◆ yaz_solr_encode_facet_field()

◆ yaz_solr_encode_facet_list()

int yaz_solr_encode_facet_list ( ODR encode,
char ** name,
char ** value,
int * i,
Z_FacetList * facet_list )
static

Definition at line 470 of file solr.c.

References Z_FacetList::elements, name, Z_FacetList::num, and yaz_solr_encode_facet_field().

Referenced by yaz_solr_encode_request().

◆ yaz_solr_encode_request()