pazpar2
1.14.1
|
#include <assert.h>
#include <yaz/yaz-util.h>
#include "ppmutex.h"
#include "session.h"
#include "reclists.h"
#include "jenkins_hash.h"
Go to the source code of this file.
Data Structures | |
struct | reclist |
struct | reclist_bucket |
Functions | |
static void | append_merge_keys (struct record_metadata_attr **p, const struct record_metadata_attr *a, NMEM nmem) |
struct reclist_sortparms * | reclist_parse_sortparms (NMEM nmem, const char *parms, struct conf_service *service) |
static int | reclist_cmp (const void *p1, const void *p2) |
void | reclist_limit (struct reclist *l, struct session *se, int lazy) |
void | reclist_sort (struct reclist *l, struct reclist_sortparms *parms) |
struct record_cluster * | reclist_read_record (struct reclist *l) |
void | reclist_enter (struct reclist *l) |
void | reclist_leave (struct reclist *l) |
void | reclist_rewind (struct reclist *l) |
struct reclist * | reclist_create (NMEM nmem) |
void | reclist_destroy (struct reclist *l) |
int | reclist_get_num_records (struct reclist *l) |
static void | merge_cluster (struct reclist *l, struct relevance *r, struct record_cluster *dst, struct record_cluster *src) |
static struct record_cluster * | new_cluster (struct reclist *l, struct relevance *r, struct conf_service *service, struct record *record, struct record_metadata_attr *merge_keys) |
struct record_cluster * | reclist_insert (struct reclist *l, struct relevance *r, struct conf_service *service, struct record *record, struct record_metadata_attr *merge_keys, int *total) |
int | reclist_sortparms_cmp (struct reclist_sortparms *sort1, struct reclist_sortparms *sort2) |
|
static |
Definition at line 51 of file reclists.c.
References record_metadata_attr::name, record_metadata_attr::next, and record_metadata_attr::value.
Referenced by merge_cluster(), and new_cluster().
|
static |
Definition at line 407 of file reclists.c.
References append_merge_keys(), reclist_bucket::hash_next, reclist::hash_size, reclist::hashtable, jenkins_hash(), record_cluster::merge_keys, record_metadata_attr::next, record::next, reclist::nmem, reclist_bucket::record, record_cluster::records, record_cluster::relevance_explain1, record_cluster::relevance_explain2, relevance_mergerec(), and record_metadata_attr::value.
Referenced by reclist_insert().
|
static |
Definition at line 445 of file reclists.c.
References append_merge_keys(), record_cluster::merge_keys, record_cluster::metadata, record::next, reclist::nmem, conf_service::num_metadata, reclist::num_records, conf_service::num_sortkeys, record_cluster::recid, record_cluster::records, record_cluster::relevance_explain1, record_cluster::relevance_explain2, relevance_newrec(), record_cluster::relevance_score, record_cluster::retrieval_position, reclist::sorted_list, reclist::sorted_ptr, record_cluster::sortkeys, and record_metadata_attr::value.
Referenced by reclist_insert().
|
static |
Definition at line 169 of file reclists.c.
References data_types::fnumber, reclist_sortparms::increasing, data_types::max, Metadata_type_date, Metadata_type_float, Metadata_type_generic, Metadata_type_position, Metadata_type_relevance, Metadata_type_retrieval, Metadata_type_skiparticle, Metadata_type_year, data_types::min, reclist_sortparms::next, record::next, data_types::number, reclist_sortparms::offset, record::position, record_cluster::recid, record_cluster::records, record_cluster::relevance_score, record_cluster::retrieval_position, data_types::sort, record_cluster::sort_parms, record_cluster::sortkeys, data_types::text, and reclist_sortparms::type.
Referenced by reclist_sort().
struct reclist* reclist_create | ( | NMEM | nmem | ) |
Definition at line 362 of file reclists.c.
References reclist::hash_size, reclist::hashtable, reclist::mutex, reclist::nmem, reclist::num_records, pazpar2_mutex_create(), reclist::sorted_list, and reclist::sorted_ptr.
Referenced by session_clear_set(), and session_create().
void reclist_destroy | ( | struct reclist * | l | ) |
Definition at line 380 of file reclists.c.
References reclist_bucket::hash_next, reclist::hash_size, reclist::hashtable, reclist::mutex, reclist_bucket::record, record_cluster::relevance_explain1, and record_cluster::relevance_explain2.
Referenced by session_clear_set(), and session_destroy().
void reclist_enter | ( | struct reclist * | l | ) |
Definition at line 343 of file reclists.c.
References reclist::mutex, reclist::sorted_list, and reclist::sorted_ptr.
Referenced by reclist_limit(), reclist_sort(), relevance_prepare_read(), show_range_start(), and show_single_start().
int reclist_get_num_records | ( | struct reclist * | l | ) |
Definition at line 400 of file reclists.c.
References reclist::num_records.
Referenced by client_got_records(), cmd_show(), and show_range_start().
struct record_cluster* reclist_insert | ( | struct reclist * | l, |
struct relevance * | r, | ||
struct conf_service * | service, | ||
struct record * | record, | ||
struct record_metadata_attr * | merge_keys, | ||
int * | total | ||
) |
Definition at line 482 of file reclists.c.
References record::client, reclist_bucket::hash_next, reclist::hash_size, reclist::hashtable, jenkins_hash(), merge_cluster(), reclist::mutex, new_cluster(), record_metadata_attr::next, record::next, reclist::nmem, reclist_bucket::record, record_compare(), record_cluster::records, record_cluster::relevance_explain1, and record_metadata_attr::value.
Referenced by ingest_to_cluster().
void reclist_leave | ( | struct reclist * | l | ) |
Definition at line 350 of file reclists.c.
References reclist::mutex, reclist::sorted_list, and reclist::sorted_ptr.
Referenced by reclist_limit(), reclist_sort(), relevance_prepare_read(), show_range_start(), and show_single_start().
Definition at line 259 of file reclists.c.
References reclist_bucket::hash_next, reclist::hash_size, reclist::hashtable, reclist::num_records, reclist_enter(), reclist_leave(), reclist_bucket::record, session_check_cluster_limit(), reclist::sorted_list, and record_cluster::sorted_next.
Referenced by show_range_start(), and show_single_start().
struct reclist_sortparms* reclist_parse_sortparms | ( | NMEM | nmem, |
const char * | parms, | ||
struct conf_service * | service | ||
) |
Definition at line 71 of file reclists.c.
References reclist_sortparms::increasing, Metadata_type_generic, Metadata_type_position, Metadata_type_relevance, Metadata_type_retrieval, conf_sortkey::name, reclist_sortparms::next, conf_service::num_sortkeys, reclist_sortparms::offset, conf_service::sortkeys, conf_sortkey::type, and reclist_sortparms::type.
Referenced by cmd_search(), cmd_show(), show_range_start(), and show_records().
struct record_cluster* reclist_read_record | ( | struct reclist * | l | ) |
Definition at line 331 of file reclists.c.
References record_cluster::sorted_next, and reclist::sorted_ptr.
Referenced by relevance_prepare_read(), show_range_start(), and show_single_start().
void reclist_rewind | ( | struct reclist * | l | ) |
Definition at line 356 of file reclists.c.
References reclist::sorted_list, and reclist::sorted_ptr.
Referenced by relevance_prepare_read().
void reclist_sort | ( | struct reclist * | l, |
struct reclist_sortparms * | parms | ||
) |
Definition at line 298 of file reclists.c.
References reclist::num_records, reclist_cmp(), reclist_enter(), reclist_leave(), record_cluster::sort_parms, reclist::sorted_list, and record_cluster::sorted_next.
Referenced by show_range_start().
int reclist_sortparms_cmp | ( | struct reclist_sortparms * | sort1, |
struct reclist_sortparms * | sort2 | ||
) |
Definition at line 564 of file reclists.c.
References reclist_sortparms::increasing, reclist_sortparms::name, and reclist_sortparms::type.
Referenced by session_sort().