YAZ
5.34.0
|
Implements RPN to SOLR conversion. More...
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <yaz/rpn2solr.h>
#include <yaz/xmalloc.h>
#include <yaz/diagbib1.h>
#include <yaz/z-core.h>
#include <yaz/wrbuf.h>
Go to the source code of this file.
Macros | |
#define | SOLR_SPECIAL "+-&|!(){}[]^\"~*?:\\" |
Functions | |
static const char * | lookup_index_from_string_attr (Z_AttributeList *attributes) |
static const char * | lookup_relation_index_from_attr (Z_AttributeList *attributes) |
static int | check_range (solr_transform_t ct, Z_Complex *q, Z_AttributesPlusTerm **p_apt1, Z_AttributesPlusTerm **p_apt2) |
static int | rpn2solr_attr (solr_transform_t ct, Z_AttributeList *attributes, WRBUF w) |
static Odr_int | get_truncation (Z_AttributesPlusTerm *apt) |
static int | emit_term (solr_transform_t ct, WRBUF w, Z_Term *term, Odr_int trunc) |
static int | rpn2solr_simple (solr_transform_t ct, void(*pr)(const char *buf, void *client_data), void *client_data, Z_AttributesPlusTerm *apt, WRBUF w, Z_AttributesPlusTerm *apt2) |
static int | rpn2solr_structure (solr_transform_t ct, void(*pr)(const char *buf, void *client_data), void *client_data, Z_RPNStructure *q, int nested, WRBUF w) |
int | solr_transform_rpn2solr_stream_r (solr_transform_t ct, WRBUF addinfo, void(*pr)(const char *buf, void *client_data), void *client_data, Z_RPNQuery *q) |
transforms RPN query to SOLR output stream (re-entrant) More... | |
int | solr_transform_rpn2solr_stream (solr_transform_t ct, void(*pr)(const char *buf, void *client_data), void *client_data, Z_RPNQuery *q) |
transforms RPN query to SOLR output stream (NOT re-entrant) More... | |
int | solr_transform_rpn2solr_wrbuf (solr_transform_t ct, WRBUF w, Z_RPNQuery *q) |
transforms RPN query to SOLR WRBUF More... | |
Implements RPN to SOLR conversion.
Definition in file rpn2solr.c.
#define SOLR_SPECIAL "+-&|!(){}[]^\"~*?:\\" |
Definition at line 202 of file rpn2solr.c.
|
static |
Definition at line 102 of file rpn2solr.c.
References Z_AttributesPlusTerm::attributes, Z_Operand::attributesPlusTerm, lookup_index_from_string_attr(), lookup_relation_index_from_attr(), Z_Complex::roperator, Z_Complex::s1, Z_Complex::s2, Z_RPNStructure::simple, solr_lookup_reverse(), Z_RPNStructure::u, Z_Operand::u, Z_RPNStructure::which, Z_Operand::which, Z_Operator::which, Z_Operand_APT, Z_Operator_and, and Z_RPNStructure_simple.
Referenced by rpn2solr_structure().
|
static |
Definition at line 204 of file rpn2solr.c.
References odr_oct::buf, Z_Term::characterString, Z_Term::general, odr_oct::len, Z_Term::numeric, ODR_INT_PRINTF, SOLR_SPECIAL, Z_Term::u, Z_Term::which, wrbuf_printf(), wrbuf_putc, wrbuf_puts(), YAZ_BIB1_TERM_TYPE_UNSUPP, Z_Term_characterString, Z_Term_general, and Z_Term_numeric.
Referenced by rpn2solr_simple().
|
static |
Definition at line 179 of file rpn2solr.c.
References Z_AttributesPlusTerm::attributes, Z_AttributeList::attributes, Z_AttributeElement::attributeType, Z_AttributeList::num_attributes, Z_AttributeElement::numeric, Z_AttributeElement::value, Z_AttributeElement::which, Z_AttributeValue_complex, and Z_AttributeValue_numeric.
Referenced by rpn2solr_simple().
|
static |
Definition at line 22 of file rpn2solr.c.
References Z_AttributeList::attributes, Z_AttributeElement::attributeType, Z_AttributeElement::complex, Z_ComplexAttribute::list, Z_AttributeList::num_attributes, Z_ComplexAttribute::num_list, Z_StringOrNumeric::string, Z_StringOrNumeric::u, Z_AttributeElement::value, Z_AttributeElement::which, Z_StringOrNumeric::which, Z_AttributeValue_complex, and Z_StringOrNumeric_string.
Referenced by check_range(), and rpn2solr_attr().
|
static |
Definition at line 50 of file rpn2solr.c.
References Z_AttributeList::attributes, Z_AttributeElement::attributeType, Z_AttributeList::num_attributes, Z_AttributeElement::numeric, Z_AttributeElement::value, Z_AttributeElement::which, Z_AttributeValue_numeric, Z_ProximityOperator_Prox_equal, Z_ProximityOperator_Prox_greaterThan, Z_ProximityOperator_Prox_greaterThanOrEqual, Z_ProximityOperator_Prox_lessThan, Z_ProximityOperator_Prox_lessThanOrEqual, and Z_ProximityOperator_Prox_notEqual.
Referenced by check_range(), and rpn2solr_simple().
|
static |
Definition at line 150 of file rpn2solr.c.
References lookup_index_from_string_attr(), solr_lookup_reverse(), wrbuf_puts(), and YAZ_BIB1_UNSUPP_USE_ATTRIBUTE.
Referenced by rpn2solr_simple().
|
static |
Definition at line 275 of file rpn2solr.c.
References Z_AttributesPlusTerm::attributes, emit_term(), get_truncation(), lookup_relation_index_from_attr(), rpn2solr_attr(), solr_lookup_reverse(), Z_AttributesPlusTerm::term, wrbuf_cstr(), wrbuf_puts(), wrbuf_rewind(), YAZ_BIB1_UNSUPP_RELATION_ATTRIBUTE, and YAZ_BIB1_UNSUPP_TRUNCATION_ATTRIBUTE.
Referenced by rpn2solr_structure().
|
static |
Definition at line 351 of file rpn2solr.c.
References Z_Operand::attributesPlusTerm, check_range(), Z_RPNStructure::complex, Z_Complex::roperator, rpn2solr_simple(), Z_Complex::s1, Z_Complex::s2, Z_RPNStructure::simple, Z_RPNStructure::u, Z_Operand::u, Z_RPNStructure::which, Z_Operand::which, Z_Operator::which, YAZ_BIB1_RESULT_SET_UNSUPP_AS_A_SEARCH_TERM, YAZ_BIB1_UNSUPP_SEARCH, Z_Operand_APT, Z_Operator_and, Z_Operator_and_not, Z_Operator_or, Z_Operator_prox, and Z_RPNStructure_simple.
Referenced by solr_transform_rpn2solr_stream_r().
int solr_transform_rpn2solr_stream | ( | solr_transform_t | ct, |
void(*)(const char *buf, void *client_data) | pr, | ||
void * | client_data, | ||
Z_RPNQuery * | q | ||
) |
transforms RPN query to SOLR output stream (NOT re-entrant)
ct | SOLR transform handle |
pr | print function |
client_data | opaque data to be passed to print handler |
q | RPN Query |
0 | success |
!=0 | failure (error code) |
Definition at line 413 of file rpn2solr.c.
References solr_transform_rpn2solr_stream_r(), solr_transform_set_error(), wrbuf_alloc(), wrbuf_cstr(), wrbuf_destroy(), and wrbuf_len.
Referenced by solr_transform_rpn2solr_wrbuf().
int solr_transform_rpn2solr_stream_r | ( | solr_transform_t | ct, |
WRBUF | addinfo, | ||
void(*)(const char *buf, void *client_data) | pr, | ||
void * | client_data, | ||
Z_RPNQuery * | q | ||
) |
transforms RPN query to SOLR output stream (re-entrant)
ct | SOLR transform handle |
addinfo | additional info on error |
pr | print function |
client_data | opaque data to be passed to print handler |
q | RPN Query |
0 | success |
!=0 | failure (error code) |
Definition at line 400 of file rpn2solr.c.
References rpn2solr_structure(), Z_RPNQuery::RPNStructure, and wrbuf_rewind().
Referenced by solr_transform_rpn2solr_stream().
int solr_transform_rpn2solr_wrbuf | ( | solr_transform_t | ct, |
WRBUF | w, | ||
Z_RPNQuery * | q | ||
) |
transforms RPN query to SOLR WRBUF
ct | SOLR transform handle |
w | WRBUF handle for result |
q | RPN Query |
0 | success |
!=0 | failure (error code) |
Definition at line 426 of file rpn2solr.c.
References solr_transform_rpn2solr_stream(), and wrbuf_vp_puts().