pazpar2
1.14.1
|
#include <yaz/comstack.h>
#include <yaz/pquery.h>
#include <yaz/ccl.h>
#include <yaz/yaz-ccl.h>
#include "facet_limit.h"
#include "relevance.h"
#include "reclists.h"
Go to the source code of this file.
Data Structures | |
struct | session_database |
struct | named_termlist |
struct | session_watchentry |
struct | session |
struct | statistics |
struct | hitsbytarget |
Macros | |
#define | SESSION_WATCH_SHOW 0 |
#define | SESSION_WATCH_RECORD 1 |
#define | SESSION_WATCH_SHOW_PREF 2 |
#define | SESSION_WATCH_TERMLIST 3 |
#define | SESSION_WATCH_BYTARGET 4 |
#define | SESSION_WATCH_MAX 4 |
Typedefs | |
typedef void(* | session_watchfun) (void *data) |
Functions | |
struct hitsbytarget * | get_hitsbytarget (struct session *s, int *count, NMEM nmem) |
struct session * | session_create (NMEM nmem, struct conf_service *service, unsigned session_id) |
void | session_destroy (struct session *s) |
void | session_init_databases (struct session *s) |
void | statistics (struct session *s, struct statistics *stat) |
int | sessions_get_count (void) |
void | session_sort (struct session *se, struct reclist_sortparms *sp, const char *mergekey, const char *rank) |
enum pazpar2_error_code | session_search (struct session *s, const char *query, const char *startrecs, const char *maxrecs, const char *filter, const char *limit, const char **addinfo, const char **addinfo2, struct reclist_sortparms *sort_parm, const char *mergekey, const char *rank) |
struct record_cluster ** | show_range_start (struct session *s, struct reclist_sortparms *sp, int start, int *num, int *total, Odr_int *sumhits, Odr_int *approximation, void(*ready)(void *data), struct http_channel *chan) |
int | session_fetch_more (struct session *s) |
void | show_range_stop (struct session *s, struct record_cluster **recs) |
struct record_cluster * | show_single_start (struct session *s, const char *id, struct record_cluster **prev_r, struct record_cluster **next_r) |
void | show_single_stop (struct session *s, struct record_cluster *rec) |
int | session_set_watch (struct session *s, int what, session_watchfun fun, void *data, struct http_channel *c) |
int | session_active_clients (struct session *s) |
int | session_is_preferred_clients_ready (struct session *s) |
void | session_apply_setting (struct session *se, const char *dbname, const char *setting, const char *value) |
const char * | session_setting_oneval (struct session_database *db, int offset) |
void | session_stop (struct session *se) |
int | ingest_record (struct client *cl, const char *rec, int record_no, NMEM nmem) |
ingest XML record More... | |
int | ingest_xml_record (struct client *cl, xmlDoc *xdoc, int record_no, NMEM nmem, int cached_copy) |
void | session_alert_watch (struct session *s, int what) |
void | add_facet (struct session *s, const char *type, const char *value, int count, struct client *cl) |
int | session_check_cluster_limit (struct session *se, struct record_cluster *rec) |
void | perform_termlist (struct http_channel *c, struct session *se, const char *name, int num, int version) |
const char * | session_lookup_id_facet (struct session *s, struct client *cl, const char *type, const char *term) |
void | session_log (struct session *s, int level, const char *fmt,...) |
enum pazpar2_error_code |
void add_facet | ( | struct session * | s, |
const char * | type, | ||
const char * | value, | ||
int | count, | ||
struct client * | cl | ||
) |
Definition at line 254 of file session.c.
References named_termlist::next, session::nmem, session_add_id_facet(), session_normalize_facet(), termlist_create(), termlist_insert(), session::termlists, and facet_id::type.
Referenced by client_report_facets(), and ingest_to_cluster().
struct hitsbytarget* get_hitsbytarget | ( | struct session * | s, |
int * | count, | ||
NMEM | nmem | ||
) |
Definition at line 1184 of file session.c.
References hitsbytarget_nb(), session_enter(), and session_leave().
Referenced by bytarget_response().
int ingest_record | ( | struct client * | cl, |
const char * | rec, | ||
int | record_no, | ||
NMEM | nmem | ||
) |
ingest XML record
cl | client holds the result set for record |
rec | record buffer (0 terminated) |
record_no | record position (1, 2, ..) |
nmem | working NMEM |
0 | OK |
-1 | failure |
-2 | Filtered |
Definition at line 1874 of file session.c.
References client_get_database(), client_get_session(), client_store_xdoc(), ingest_xml_record(), conf_service::nmem, normalize_record(), and session::service.
Referenced by client_record_ingest().
int ingest_xml_record | ( | struct client * | cl, |
xmlDoc * | xdoc, | ||
int | record_no, | ||
NMEM | nmem, | ||
int | cached_copy | ||
) |
Definition at line 1886 of file session.c.
References client_get_database(), client_get_session(), session_database::database, parameters::dump_records, get_mergekey(), global_parameters, database::id, ingest_sub_record(), insert_settings_values(), log_xml_doc(), session::mergekey, record_metadata_attr::name, record_metadata_attr::next, session::service, session_log(), and record_metadata_attr::value.
Referenced by client_record_ingest(), and ingest_record().
void perform_termlist | ( | struct http_channel * | c, |
struct session * | se, | ||
const char * | name, | ||
int | num, | ||
int | version | ||
) |
Definition at line 1259 of file session.c.
References termlist_score::display_term, termlist_score::frequency, name, named_termlist::name, named_termlist::next, http_channel::nmem, session_enter(), session_leave(), targets_termlist_nb(), named_termlist::termlist, termlist_highscore(), session::termlists, and http_channel::wrbuf.
Referenced by termlist_response().
int session_active_clients | ( | struct session * | s | ) |
Definition at line 637 of file session.c.
References client_list::client, client_is_active(), session::clients_active, and client_list::next.
Referenced by client_set_state(), cmd_bytarget(), cmd_show(), cmd_stat(), cmd_termlist(), show_record(), show_records(), and termlist_response().
void session_alert_watch | ( | struct session * | s, |
int | what | ||
) |
Definition at line 521 of file session.c.
References session_watchentry::data, fun, session_watchentry::fun, http_remove_observer(), session_watchentry::obs, session_enter(), session_leave(), session_log(), and session::watchlist.
Referenced by client_got_records(), client_set_state(), and session_search().
void session_apply_setting | ( | struct session * | se, |
const char * | dbname, | ||
const char * | setting, | ||
const char * | value | ||
) |
Definition at line 1018 of file session.c.
References expand_settings_array(), find_session_database(), session_database::map, name, setting::name, setting::next, session_database::num_settings, setting::precedence, PZ_XSLT, session::service, session_enter(), session_leave(), session::session_nmem, session_database::settings, settings_create_offset(), session::settings_modified, setting::target, and setting::value.
Referenced by apply_local_setting(), and process_settings().
int session_check_cluster_limit | ( | struct session * | se, |
struct record_cluster * | rec | ||
) |
Definition at line 2035 of file session.c.
References conf_service_metadata_field_id(), session::facet_limits, facet_limits_get(), conf_metadata::limitcluster, match_metadata_local(), conf_service::metadata, record_cluster::metadata, name, conf_metadata::name, conf_service::num_metadata, and session::service.
Referenced by reclist_limit().
struct session* session_create | ( | NMEM | nmem, |
struct conf_service * | service, | ||
unsigned | session_id | ||
) |
Definition at line 1093 of file session.c.
References session::clients_active, session::clients_cached, session::clients_starting, session_watchentry::data, session::databases, session::facet_id_list, session::facet_limits, session::force_position, session_watchentry::fun, session::mergekey, session::nmem, session::normalize_cache, normalize_cache_create(), session::number_of_warnings_unknown_elements, session::number_of_warnings_unknown_metadata, pazpar2_mutex_create(), session::rank, session::reclist, reclist_create(), session::relevance, session::service, session::session_id, session_log(), session::session_mutex, session::session_nmem, session_use(), SESSION_WATCH_MAX, session::settings_modified, session::sorted_results, session::termlists, session::total_records, and session::watchlist.
Referenced by http_session_create().
void session_destroy | ( | struct session * | s | ) |
Definition at line 1053 of file session.c.
References session::databases, session::facet_id_list, session::facet_limits, facet_limits_destroy(), session::mergekey, facet_id::next, session_database::next, session::nmem, session::normalize_cache, normalize_cache_destroy(), session::rank, session::reclist, reclist_destroy(), session::relevance, relevance_destroy(), session::service, service_destroy(), session_database_destroy(), session_log(), session::session_mutex, session::session_nmem, session_remove_cached_clients(), and session_use().
Referenced by http_session_destroy(), and http_sessions_destroy().
int session_fetch_more | ( | struct session * | s | ) |
Definition at line 1384 of file session.c.
References client_list::client, client_fetch_more(), client_get_hits(), client_get_id(), client_get_num_records(), client_get_state(), client_get_state_str(), Client_Idle, session::clients_active, client::filtered, client::ingest_failures, client_list::next, client::record_failures, and session_log().
Referenced by show_range_start().
void session_init_databases | ( | struct session * | s | ) |
Definition at line 987 of file session.c.
References session::databases, predef_grep_databases(), session::service, and session_init_databases_fun().
Referenced by cmd_init().
int session_is_preferred_clients_ready | ( | struct session * | s | ) |
Definition at line 649 of file session.c.
References client_list::client, client_is_active_preferred(), session::clients_active, client_list::next, and session_log().
Referenced by client_got_records(), and cmd_show().
void session_log | ( | struct session * | s, |
int | level, | ||
const char * | fmt, | ||
... | |||
) |
Definition at line 2509 of file session.c.
References session::session_id.
Referenced by bytarget_response(), bytarget_result_ready(), client_parse_query(), client_record_ingest(), client_record_response(), client_search_response(), client_start_search(), cmd_bytarget(), cmd_init(), cmd_record_ready(), cmd_settings(), cmd_show(), cmd_termlist(), connection_connect(), http_session_create(), http_session_destroy(), ingest_sub_record(), ingest_to_cluster(), ingest_xml_record(), non_block_events(), normalize_record(), prepare_map(), record_to_xml(), run_icu(), session_alert_watch(), session_clear_set(), session_create(), session_destroy(), session_enter(), session_fetch_more(), session_is_preferred_clients_ready(), session_leave(), session_sort(), show_range_start(), show_records_ready(), and termlist_result_ready().
const char* session_lookup_id_facet | ( | struct session * | s, |
struct client * | cl, | ||
const char * | type, | ||
const char * | term | ||
) |
Definition at line 234 of file session.c.
References client_get_id(), facet_id::client_id, session::facet_id_list, facet_id::id, facet_id::next, facet_id::term, and facet_id::type.
Referenced by apply_limit().
enum pazpar2_error_code session_search | ( | struct session * | s, |
const char * | query, | ||
const char * | startrecs, | ||
const char * | maxrecs, | ||
const char * | filter, | ||
const char * | limit, | ||
const char ** | addinfo, | ||
const char ** | addinfo2, | ||
struct reclist_sortparms * | sort_parm, | ||
const char * | mergekey, | ||
const char * | rank | ||
) |
Definition at line 791 of file session.c.
References client_list::client, client_stop(), session::clients_active, session::clients_starting, client_list::next, session_alert_watch(), session_enter(), session_leave(), SESSION_WATCH_BYTARGET, SESSION_WATCH_SHOW, SESSION_WATCH_SHOW_PREF, and SESSION_WATCH_TERMLIST.
Referenced by cmd_search().
int session_set_watch | ( | struct session * | s, |
int | what, | ||
session_watchfun | fun, | ||
void * | data, | ||
struct http_channel * | c | ||
) |
Definition at line 500 of file session.c.
References session_watchentry::data, fun, session_watchentry::fun, http_add_observer(), session_watchentry::obs, session_enter(), session_leave(), session_watch_cancel(), and session::watchlist.
Referenced by cmd_bytarget(), cmd_show(), cmd_termlist(), show_range_start(), and show_record().
const char* session_setting_oneval | ( | struct session_database * | db, |
int | offset | ||
) |
Definition at line 433 of file session.c.
References session_database::num_settings, session_database::settings, and setting::value.
Referenced by check_record_filter(), client_fetch_more(), client_parse_query(), client_prep_connection(), client_record_ingest(), client_send_raw_present(), client_show_raw_begin(), client_start_search(), connection_connect(), findnorm(), hitsbytarget_nb(), ingest_to_cluster(), insert_settings_parameters(), insert_settings_values(), prepare_map(), and write_subrecord().
void session_sort | ( | struct session * | se, |
struct reclist_sortparms * | sp, | ||
const char * | mergekey, | ||
const char * | rank | ||
) |
Definition at line 685 of file session.c.
References client_list::client, Client_Connecting, client_get_id(), client_get_state(), Client_Idle, client_parse_init(), client_parse_sort(), client_start_search(), Client_Working, session::clients_active, session::clients_starting, session::force_position, reclist_sortparms::increasing, session::mergekey, reclist_sortparms::name, reclist_sortparms::next, client_list::next, session::nmem, session::rank, reclist_sortparms_cmp(), session_clear_set(), session_enter(), session_leave(), session_log(), session::sorted_results, and reclist_sortparms::type.
Referenced by cmd_show().
void session_stop | ( | struct session * | se | ) |
Definition at line 791 of file session.c.
Referenced by cmd_stop().
int sessions_get_count | ( | void | ) |
struct record_cluster** show_range_start | ( | struct session * | s, |
struct reclist_sortparms * | sp, | ||
int | start, | ||
int * | num, | ||
int * | total, | ||
Odr_int * | sumhits, | ||
Odr_int * | approximation, | ||
void(*)(void *data) | ready, | ||
struct http_channel * | chan | ||
) |
Definition at line 1432 of file session.c.
References record::client, client_list::client, client_get_approximation(), client_get_hits(), client_update_show_stat(), session::clients_active, session::force_position, Metadata_type_relevance, reclist_sortparms::next, record::next, client_list::next, session::nmem, session::reclist, reclist_enter(), reclist_get_num_records(), reclist_leave(), reclist_limit(), reclist_parse_sortparms(), reclist_read_record(), reclist_sort(), record_cluster::records, session::relevance, relevance_prepare_read(), session_enter(), session_fetch_more(), session_log(), session_set_watch(), SESSION_WATCH_SHOW, show_range_stop(), show_records_ready(), and reclist_sortparms::type.
Referenced by show_records().
void show_range_stop | ( | struct session * | s, |
struct record_cluster ** | recs | ||
) |
Definition at line 1543 of file session.c.
References session_leave().
Referenced by show_range_start(), and show_records().
struct record_cluster* show_single_start | ( | struct session * | s, |
const char * | id, | ||
struct record_cluster ** | prev_r, | ||
struct record_cluster ** | next_r | ||
) |
Definition at line 1351 of file session.c.
References record_cluster::recid, session::reclist, reclist_enter(), reclist_leave(), reclist_limit(), reclist_read_record(), session_enter(), and session_leave().
Referenced by show_record().
void show_single_stop | ( | struct session * | s, |
struct record_cluster * | rec | ||
) |
void statistics | ( | struct session * | s, |
struct statistics * | stat | ||
) |
Definition at line 1548 of file session.c.
References client_list::client, Client_Connecting, Client_Error, Client_Failed, client_get_connection(), client_get_hits(), client_get_state(), Client_Idle, Client_Working, session::clients_active, client_list::next, statistics::num_clients, statistics::num_connecting, statistics::num_error, statistics::num_failed, statistics::num_hits, statistics::num_idle, statistics::num_no_connection, statistics::num_records, statistics::num_working, and session::total_records.
Referenced by cmd_stat().