IDZEBRA
2.2.7
|
#include <stdio.h>
#include <assert.h>
#include <unistd.h>
#include "index.h"
#include "rank.h"
#include <yaz/diagbib1.h>
#include <rset.h>
Go to the source code of this file.
Data Structures | |
struct | zebra_set_term_entry |
struct | zebra_set |
struct | zset_sort_entry |
struct | zset_sort_info |
struct | sortKeyInfo |
Macros | |
#define | ZSET_SORT_MAX_LEVEL 10 |
Functions | |
static void | loglevels (void) |
static ZEBRA_RES | resultSetSearch (ZebraHandle zh, NMEM nmem, NMEM rset_nmem, Z_RPNQuery *rpn, ZebraSet sset) |
ZEBRA_RES | resultSetAddRPN (ZebraHandle zh, NMEM m, Z_RPNQuery *rpn, int num_bases, char **basenames, const char *setname, zint *hits, int *estimated_hit_count) |
void | resultSetAddTerm (ZebraHandle zh, ZebraSet s, int reg_type, const char *db, const char *index_name, const char *term) |
ZebraSet | resultSetAdd (ZebraHandle zh, const char *name, int ov) |
ZebraSet | resultSetGet (ZebraHandle zh, const char *name) |
ZEBRA_RES | resultSetGetBaseNames (ZebraHandle zh, const char *setname, const char ***basenames, int *num_bases) |
void | resultSetInvalidate (ZebraHandle zh) |
void | resultSetDestroy (ZebraHandle zh, int num, char **names, int *statuses) |
ZebraMetaRecord * | zebra_meta_records_create_range (ZebraHandle zh, const char *name, zint start, int num) |
ZebraMetaRecord * | zebra_meta_records_create (ZebraHandle zh, const char *name, int num, zint *positions) |
void | zebra_meta_records_destroy (ZebraHandle zh, ZebraMetaRecord *records, int num) |
void | resultSetInsertSort (ZebraHandle zh, ZebraSet sset, int database_no, struct sortKeyInfo *criteria, int num_criteria, zint sysno, char *cmp_buf[], char *tmp_cmp_buf[]) |
void | resultSetInsertRank (ZebraHandle zh, struct zset_sort_info *sort_info, zint sysno, int score, int relation) |
static Z_RPNQuery * | copy_RPNQuery (Z_RPNQuery *src, NMEM nmem) |
static Z_SortKeySpecList * | copy_SortKeySpecList (Z_SortKeySpecList *src, NMEM nmem) |
ZebraSet | resultSetClone (ZebraHandle zh, const char *setname, ZebraSet rset) |
ZEBRA_RES | resultSetSort (ZebraHandle zh, NMEM nmem, int num_input_setnames, const char **input_setnames, const char *output_setname, Z_SortKeySpecList *sort_sequence, int *sort_status) |
ZEBRA_RES | resultSetSortSingle (ZebraHandle zh, NMEM nmem, ZebraSet sset, RSET rset, Z_SortKeySpecList *sort_sequence, int *sort_status) |
RSET | resultSetRef (ZebraHandle zh, const char *resultSetId) |
ZEBRA_RES | resultSetRank (ZebraHandle zh, ZebraSet zebraSet, RSET rset, NMEM nmem) |
ZebraRankClass | zebraRankLookup (ZebraHandle zh, const char *name) |
void | zebraRankInstall (struct zebra_register *reg, struct rank_control *ctrl) |
void | zebraRankDestroy (struct zebra_register *reg) |
static int | trav_rset_for_termids (RSET rset, TERMID *termid_array, zint *hits_array, int *approx_array) |
ZEBRA_RES | zebra_result_set_term_no (ZebraHandle zh, const char *setname, int *num_terms) |
returns number of term info terms assocaited with result set More... | |
ZEBRA_RES | zebra_result_set_term_info (ZebraHandle zh, const char *setname, int no, zint *count, int *approx, char *termbuf, size_t *termlen, const char **term_ref_id) |
returns information about a term assocated with a result set More... | |
ZEBRA_RES | zebra_snippets_hit_vector (ZebraHandle zh, const char *setname, zint sysno, zebra_snippets *snippets) |
static ZEBRA_RES | zebra_recid_to_sysno (ZebraHandle zh, const char **basenames, int num_bases, zint recid, zint *sysnos, int *no_sysnos) |
ZEBRA_RES | zebra_result_recid_to_sysno (ZebraHandle zh, const char *setname, zint recid, zint *sysnos, int *no_sysnos) |
void | zebra_count_set (ZebraHandle zh, RSET rset, zint *count, zint approx_limit) |
Variables | |
static int | log_level_set =0 |
static int | log_level_sort =0 |
static int | log_level_searchhits =0 |
static int | log_level_searchterms =0 |
static int | log_level_resultsets =0 |
|
static |
Definition at line 755 of file zsets.c.
Referenced by resultSetClone().
|
static |
Definition at line 778 of file zsets.c.
Referenced by resultSetSort().
|
static |
Definition at line 87 of file zsets.c.
References log_level_resultsets, log_level_searchhits, log_level_searchterms, log_level_set, and log_level_sort.
Referenced by resultSetAdd(), resultSetRank(), resultSetSort(), and zebra_meta_records_create().
ZebraSet resultSetAdd | ( | ZebraHandle | zh, |
const char * | name, | ||
int | ov | ||
) |
Definition at line 215 of file zsets.c.
References zset_sort_info::all_entries, zebra_session::approx_limit, zebra_set::approx_limit, zebra_set::cache_position, zebra_set::cache_rfd, zset_sort_info::entries, zebra_set::estimated_hit_count, zebra_set::hits, zebra_set::locked, log_level_resultsets, log_level_set, loglevels(), zset_sort_info::max_entries, zebra_set::name, zebra_set::next, zebra_set::nmem, zebra_set::rpn, zebra_set::rset, rset_close(), rset_delete(), zebra_set::rset_nmem, zebra_session::sets, zebra_set::sort_info, zebra_set::sortSpec, zebra_set::term_entries, and zebra_get_resource().
Referenced by resultSetAddRPN(), and resultSetClone().
ZEBRA_RES resultSetAddRPN | ( | ZebraHandle | zh, |
NMEM | m, | ||
Z_RPNQuery * | rpn, | ||
int | num_bases, | ||
char ** | basenames, | ||
const char * | setname, | ||
zint * | hits, | ||
int * | estimated_hit_count | ||
) |
Definition at line 148 of file zsets.c.
References zebra_set::basenames, zebra_set::estimated_hit_count, zebra_set::hits, zebra_set::locked, zebra_set::nmem, zebra_set::num_bases, resultSetAdd(), resultSetSearch(), zebra_set::rpn, zebra_set::rset, zebra_set::rset_nmem, and ZEBRA_FAIL.
Referenced by zebra_search_RPN_x().
void resultSetAddTerm | ( | ZebraHandle | zh, |
ZebraSet | s, | ||
int | reg_type, | ||
const char * | db, | ||
const char * | index_name, | ||
const char * | term | ||
) |
Definition at line 188 of file zsets.c.
References zebra_set_term_entry::db, zebra_set::hits, zebra_set_term_entry::index_name, zebra_set::nmem, zebra_set_term_entry::reg_type, zebra_set_term_entry::term, zebra_set::term_entries, and zebra_set::term_entries_max.
Referenced by add_isam_p().
ZebraSet resultSetClone | ( | ZebraHandle | zh, |
const char * | setname, | ||
ZebraSet | rset | ||
) |
Definition at line 801 of file zsets.c.
References zebra_set::basenames, copy_RPNQuery(), zebra_set::nmem, zebra_set::num_bases, resultSetAdd(), zebra_set::rpn, zebra_set::rset, and rset_dup().
Referenced by resultSetSort().
void resultSetDestroy | ( | ZebraHandle | zh, |
int | num, | ||
char ** | names, | ||
int * | statuses | ||
) |
Definition at line 344 of file zsets.c.
References zset_sort_info::all_entries, zebra_set::cache_rfd, zset_sort_info::entries, zebra_set::name, zebra_set::next, zebra_set::nmem, zebra_set::rset, rset_close(), rset_delete(), zebra_set::rset_nmem, zebra_session::sets, and zebra_set::sort_info.
Referenced by zebra_close(), and zebra_deleteResultSet().
ZebraSet resultSetGet | ( | ZebraHandle | zh, |
const char * | name | ||
) |
Definition at line 282 of file zsets.c.
References log_level_resultsets, zebra_set::name, zebra_set::next, resultSetSearch(), resultSetSortSingle(), zebra_set::rpn, zebra_set::rset, zebra_set::rset_nmem, zebra_session::sets, zebra_set::sortSpec, and zebra_set::term_entries.
Referenced by resultSetGetBaseNames(), resultSetRef(), resultSetSort(), zebra_meta_records_create(), zebra_result_set_term_info(), zebra_result_set_term_no(), and zebra_snippets_hit_vector().
ZEBRA_RES resultSetGetBaseNames | ( | ZebraHandle | zh, |
const char * | setname, | ||
const char *** | basenames, | ||
int * | num_bases | ||
) |
Definition at line 310 of file zsets.c.
References zebra_set::basenames, zebra_set::num_bases, resultSetGet(), ZEBRA_FAIL, and ZEBRA_OK.
Referenced by zebra_result_recid_to_sysno().
void resultSetInsertRank | ( | ZebraHandle | zh, |
struct zset_sort_info * | sort_info, | ||
zint | sysno, | ||
int | score, | ||
int | relation | ||
) |
Definition at line 708 of file zsets.c.
References zset_sort_info::entries, zset_sort_info::max_entries, zset_sort_info::num_entries, zset_sort_entry::score, and zset_sort_entry::sysno.
Referenced by resultSetRank().
void resultSetInsertSort | ( | ZebraHandle | zh, |
ZebraSet | sset, | ||
int | database_no, | ||
struct sortKeyInfo * | criteria, | ||
int | num_criteria, | ||
zint | sysno, | ||
char * | cmp_buf[], | ||
char * | tmp_cmp_buf[] | ||
) |
Definition at line 561 of file zsets.c.
References zset_sort_info::entries, sortKeyInfo::index_type, log_level_sort, zset_sort_info::max_entries, zset_sort_info::num_entries, sortKeyInfo::ord, zebra_session::reg, zset_sort_entry::score, SORT_IDX_ENTRYSIZE, zebra_register::sort_index, zebra_set::sort_info, zset_sort_entry::sysno, zebra_sort_read(), zebra_sort_sysno(), zebra_sort_type(), and zebra_term_untrans().
Referenced by resultSetSortSingle().
void resultSetInvalidate | ( | ZebraHandle | zh | ) |
Definition at line 322 of file zsets.c.
References zebra_set::cache_position, zebra_set::cache_rfd, log_level_resultsets, zebra_set::next, zebra_set::rset, rset_close(), rset_delete(), zebra_set::rset_nmem, and zebra_session::sets.
Referenced by zebra_begin_trans(), zebra_end_transaction(), and zebra_select_register().
ZEBRA_RES resultSetRank | ( | ZebraHandle | zh, |
ZebraSet | zebraSet, | ||
RSET | rset, | ||
NMEM | nmem | ||
) |
Definition at line 1084 of file zsets.c.
References rank_control::add, rank_control::begin, zebra_session::break_handler_data, zebra_session::break_handler_func, rank_control::calc, CAST_ZINT_TO_INT, zebra_rank_class::class_handle, zebra_rank_class::control, rsfd::counted_items, rank_control::end, zebra_set::estimated_hit_count, zebra_set::hits, rset::hits_count, rset::hits_limit, key_logdump_txt(), it_key::len, log_level_searchhits, log_level_searchterms, log_level_set, loglevels(), zebra_session::m_staticrank, it_key::mem, rank_control::name, zset_sort_info::num_entries, zebra_session::reg, zebra_session::res, res_get_def(), resultSetInsertRank(), rset_close(), rset_getterms, rset_open, rset_read, RSETF_READ, zebra_set::sort_info, ZEBRA_FAIL, ZEBRA_OK, zebra_setError(), zebraRankLookup(), and ZINT_FORMAT.
Referenced by resultSetSearch().
RSET resultSetRef | ( | ZebraHandle | zh, |
const char * | resultSetId | ||
) |
Definition at line 1075 of file zsets.c.
References resultSetGet(), and zebra_set::rset.
Referenced by perform_facet(), rpn_scan(), and rpn_search_structure().
|
static |
Definition at line 99 of file zsets.c.
References zebra_set::approx_limit, zebra_set::basenames, zebra_set::num_bases, resultSetRank(), resultSetSortSingle(), rpn_get_top_approx_limit(), rpn_search_top(), zebra_set::rset, rset_set_hits_limit(), and ZEBRA_OK.
Referenced by resultSetAddRPN(), and resultSetGet().
ZEBRA_RES resultSetSort | ( | ZebraHandle | zh, |
NMEM | nmem, | ||
int | num_input_setnames, | ||
const char ** | input_setnames, | ||
const char * | output_setname, | ||
Z_SortKeySpecList * | sort_sequence, | ||
int * | sort_status | ||
) |
Definition at line 826 of file zsets.c.
References copy_SortKeySpecList(), log_level_set, log_level_sort, loglevels(), zebra_set::nmem, resultSetClone(), resultSetGet(), resultSetSortSingle(), zebra_set::rset, zebra_set::sortSpec, ZEBRA_FAIL, and zebra_setError().
Referenced by zebra_sort(), and zebra_sort_by_specstr().
ZEBRA_RES resultSetSortSingle | ( | ZebraHandle | zh, |
NMEM | nmem, | ||
ZebraSet | sset, | ||
RSET | rset, | ||
Z_SortKeySpecList * | sort_sequence, | ||
int * | sort_status | ||
) |
Definition at line 868 of file zsets.c.
References zebra_session::basenames, zebra_session::break_handler_data, zebra_session::break_handler_func, zebra_set::hits, rset::hits_count, sortKeyInfo::index_type, key_logdump_txt(), log_level_searchhits, log_level_sort, zebra_session::m_staticrank, zset_sort_info::max_entries, it_key::mem, rset_term::name, zebra_session::num_basenames, zset_sort_info::num_entries, sortKeyInfo::numerical, rset_term::ol, ord_list::ord, sortKeyInfo::ord, ord_list_print(), zebra_session::reg, sortKeyInfo::relation, resultSetInsertSort(), rset_close(), rset_getterms, rset_open, rset_read, rset_set_hits_limit(), RSETF_READ, SORT_IDX_ENTRYSIZE, zebra_set::sort_info, ZEBRA_FAIL, ZEBRA_OK, zebra_setError(), zebra_sort_get_ord(), zebraExplain_curDatabase(), zebraExplain_lookup_attr_str(), zebraExplain_lookup_ord(), zebra_register::zei, zinfo_index_category_sort, ZINT_FORMAT, and ZSET_SORT_MAX_LEVEL.
Referenced by resultSetGet(), resultSetSearch(), and resultSetSort().
|
static |
Definition at line 1234 of file zsets.c.
References rset::children, rset::hits_approx, rset::hits_count, rset::hits_limit, rset_term::name, rset::no_children, rset::term, and ZINT_FORMAT.
Referenced by zebra_result_set_term_info(), and zebra_result_set_term_no().
void zebra_count_set | ( | ZebraHandle | zh, |
RSET | rset, | ||
zint * | count, | ||
zint | approx_limit | ||
) |
Definition at line 1498 of file zsets.c.
References rset::hits_count, rset::hits_limit, it_key::mem, rset_close(), rset_open, rset_read, and RSETF_READ.
Referenced by freq_term(), and scan_save_set().
ZebraMetaRecord* zebra_meta_records_create | ( | ZebraHandle | zh, |
const char * | name, | ||
int | num, | ||
zint * | positions | ||
) |
Definition at line 418 of file zsets.c.
References zebra_set::cache_position, zebra_set::cache_psysno, zebra_set::cache_rfd, ZebraMetaRecord::db, zebra_set_term_entry::db, zset_sort_info::entries, log_level_set, log_level_sort, loglevels(), zebra_session::m_staticrank, it_key::mem, zset_sort_info::num_entries, resultSetGet(), zebra_set::rset, rset_close(), rset_open, rset_read, RSETF_READ, ZebraMetaRecord::score, zset_sort_entry::score, zebra_set::sort_info, ZebraMetaRecord::sysno, zset_sort_entry::sysno, ZebraMetaRecord::term, zebra_set_term_entry::term, zebra_set::term_entries, zebra_set::term_entries_max, and ZINT_FORMAT.
Referenced by facet_fetch(), zebra_meta_records_create_range(), and zebra_records_retrieve().
ZebraMetaRecord* zebra_meta_records_create_range | ( | ZebraHandle | zh, |
const char * | name, | ||
zint | start, | ||
int | num | ||
) |
Definition at line 393 of file zsets.c.
References zebra_meta_records_create().
void zebra_meta_records_destroy | ( | ZebraHandle | zh, |
ZebraMetaRecord * | records, | ||
int | num | ||
) |
Definition at line 547 of file zsets.c.
Referenced by facet_fetch(), and zebra_records_retrieve().
|
static |
Definition at line 1396 of file zsets.c.
References zebra_register::dict, dict_lookup(), zebra_register::isamb, isamb_pp_close(), isamb_pp_forward(), isamb_pp_open(), isamb_pp_read(), key_SU_encode(), it_key::len, zebra_session::m_segment_indexing, it_key::mem, ord_list::ord, zebra_session::reg, ZEBRA_FAIL, ZEBRA_OK, zebraExplain_curDatabase(), zebraExplain_lookup_attr_str(), zebra_register::zei, and zinfo_index_category_alwaysmatches.
Referenced by zebra_result_recid_to_sysno().
ZEBRA_RES zebra_result_recid_to_sysno | ( | ZebraHandle | zh, |
const char * | setname, | ||
zint | recid, | ||
zint * | sysnos, | ||
int * | no_sysnos | ||
) |
Definition at line 1481 of file zsets.c.
References resultSetGetBaseNames(), ZEBRA_FAIL, ZEBRA_OK, and zebra_recid_to_sysno().
Referenced by perform_facet_index(), and zebra_record_fetch().
ZEBRA_RES zebra_result_set_term_info | ( | ZebraHandle | zh, |
const char * | setname, | ||
int | no, | ||
zint * | count, | ||
int * | approx, | ||
char * | termbuf, | ||
size_t * | termlen, | ||
const char ** | term_ref_id | ||
) |
returns information about a term assocated with a result set
zh | session handle |
setname | result set name |
no | the term we want to know about (0=first, 1=second,..) |
count | the number of occurrences of this term, aka hits (output) |
approx | about hits: 0=exact,1=approx (output) |
termbuf | buffer for term string (intput, output) |
termlen | size of termbuf (input=max, output=actual length) |
term_ref_id | if non-NULL *term_ref_id holds term reference |
Returns information about one search term associated with result set. Use zebra_result_set_term_no to read total number of terms associated with result set. If this function can not return information, due to no out of range or bad result set name, ZEBRA_FAIL is returned. The passed termbuf must be able to hold at least *termlen characters. Upon completion, *termlen holds actual length of search term.
Definition at line 1275 of file zsets.c.
References zebra_session::iconv_from_utf8, rset_term::name, rset_term::ref_id, resultSetGet(), zebra_set::rset, trav_rset_for_termids(), ZEBRA_FAIL, and ZEBRA_OK.
Referenced by search_terms().
ZEBRA_RES zebra_result_set_term_no | ( | ZebraHandle | zh, |
const char * | setname, | ||
int * | num_terms | ||
) |
returns number of term info terms assocaited with result set
zh | session handle |
setname | result set name |
num_terms | number of terms returned in this integer |
This function is used in conjunction with zebra_result_set_term_info. If operation was successful, ZEBRA_OK is returned; otherwise ZEBRA_FAIL is returned (typically non-existing setname)
Definition at line 1262 of file zsets.c.
References resultSetGet(), zebra_set::rset, trav_rset_for_termids(), ZEBRA_FAIL, and ZEBRA_OK.
Referenced by search_terms().
ZEBRA_RES zebra_snippets_hit_vector | ( | ZebraHandle | zh, |
const char * | setname, | ||
zint | sysno, | ||
zebra_snippets * | snippets | ||
) |
Definition at line 1340 of file zsets.c.
References rset_key_control::dec, it_key::len, it_key::mem, rset_term::name, ord_list::next, rset_term::ol, ord_list::ord, zebra_session::res, res_get(), resultSetGet(), zebra_set::rset, rset_close(), rset_create_and(), rset_create_temp(), rset_delete(), rset_dup(), rset_open, rset_read, rset_write, RSETF_READ, RSETF_WRITE, rset_key_control::scope, ZEBRA_FAIL, zebra_key_control_create(), ZEBRA_OK, zebra_snippets_append(), and ZINT_FORMAT.
Referenced by snippet_fetch(), and zebra_records_retrieve().
void zebraRankDestroy | ( | struct zebra_register * | reg | ) |
Definition at line 1218 of file zsets.c.
References zebra_rank_class::class_handle, zebra_rank_class::control, rank_control::destroy, zebra_rank_class::init_flag, rank_control::name, zebra_rank_class::next, and zebra_register::rank_classes.
Referenced by zebra_register_close().
void zebraRankInstall | ( | struct zebra_register * | reg, |
struct rank_control * | ctrl | ||
) |
Definition at line 1207 of file zsets.c.
References zebra_rank_class::control, zebra_rank_class::init_flag, rank_control::name, zebra_rank_class::next, and zebra_register::rank_classes.
Referenced by zebra_register_open().
ZebraRankClass zebraRankLookup | ( | ZebraHandle | zh, |
const char * | name | ||
) |
Definition at line 1193 of file zsets.c.
References zebra_rank_class::class_handle, zebra_rank_class::control, rank_control::create, zebra_rank_class::init_flag, rank_control::name, zebra_rank_class::next, zebra_register::rank_classes, and zebra_session::reg.
Referenced by resultSetRank().
|
static |
Definition at line 85 of file zsets.c.
Referenced by loglevels(), resultSetAdd(), resultSetGet(), and resultSetInvalidate().
|
static |
Definition at line 83 of file zsets.c.
Referenced by loglevels(), resultSetRank(), and resultSetSortSingle().
|
static |
Definition at line 84 of file zsets.c.
Referenced by loglevels(), and resultSetRank().
|
static |
Definition at line 81 of file zsets.c.
Referenced by loglevels(), resultSetAdd(), resultSetRank(), resultSetSort(), and zebra_meta_records_create().
|
static |
Definition at line 82 of file zsets.c.
Referenced by loglevels(), resultSetInsertSort(), resultSetSort(), resultSetSortSingle(), and zebra_meta_records_create().