def do_upgrade(): # first step: change tables stmt = run_sql("SHOW CREATE TABLE idxINDEX")[0][1] if "`synonym_kbrs` varchar(255)" not in stmt: run_sql("ALTER TABLE idxINDEX ADD COLUMN synonym_kbrs varchar(255) NOT NULL default '' AFTER indexer") # second step: fill tables run_sql("UPDATE idxINDEX SET synonym_kbrs='INDEX-SYNONYM-TITLE,exact' WHERE name IN ('global','title')") # third step: check invenio.conf from invenio.config import CFG_BIBINDEX_SYNONYM_KBRS from invenio.bibindex_engine_utils import get_index_id_from_index_name if CFG_BIBINDEX_SYNONYM_KBRS: for index in CFG_BIBINDEX_SYNONYM_KBRS: index_id = get_index_id_from_index_name(index) synonym = ",".join(CFG_BIBINDEX_SYNONYM_KBRS[index]) query = "UPDATE idxINDEX SET synonym_kbrs='%s' WHERE id=%s" % (synonym, index_id) run_sql(query)
def initialise_term_collector( index_name, collector_type=TermCollector, table_type=CFG_BIBINDEX_INDEX_TABLE_TYPE["Words"]): """Initialise any term collector for given index and WORD index table""" index_id = get_index_id_from_index_name(index_name) remove_stopwords = get_index_remove_stopwords(index_id) remove_html_markup = get_index_remove_html_markup(index_id) remove_latex_markup = get_index_remove_latex_markup(index_id) stemming = get_index_stemming_language(index_id) tokenizer = get_index_tokenizer(index_id)(stemming, remove_stopwords, remove_html_markup, remove_latex_markup) args = [tokenizer, detect_tokenizer_type(tokenizer), table_type] tagtype = collector_type == TermCollector and "marc" or "nonmarc" args.append(get_index_tags(index_name, tagtype=tagtype)) args.append([1, get_max_recid()]) return collector_type(*args)
def initialise_term_collector(index_name, collector_type=TermCollector, table_type=CFG_BIBINDEX_INDEX_TABLE_TYPE["Words"]): """Initialise any term collector for given index and WORD index table""" index_id = get_index_id_from_index_name(index_name) remove_stopwords = get_index_remove_stopwords(index_id) remove_html_markup = get_index_remove_html_markup(index_id) remove_latex_markup = get_index_remove_latex_markup(index_id) stemming = get_index_stemming_language(index_id) tokenizer = get_index_tokenizer(index_id)(stemming, remove_stopwords, remove_html_markup, remove_latex_markup) args = [tokenizer, detect_tokenizer_type(tokenizer), table_type] tagtype = collector_type == TermCollector and "marc" or "nonmarc" args.append(get_index_tags(index_name, tagtype=tagtype)) args.append([1, get_max_recid()]) return collector_type(*args)
def do_upgrade(): #first step: change tables stmt = run_sql('SHOW CREATE TABLE idxINDEX')[0][1] if '`synonym_kbrs` varchar(255)' not in stmt: run_sql( "ALTER TABLE idxINDEX ADD COLUMN synonym_kbrs varchar(255) NOT NULL default '' AFTER indexer" ) #second step: fill tables run_sql( "UPDATE idxINDEX SET synonym_kbrs='INDEX-SYNONYM-TITLE,exact' WHERE name IN ('global','title')" ) #third step: check invenio.conf from invenio.config import CFG_BIBINDEX_SYNONYM_KBRS from invenio.bibindex_engine_utils import get_index_id_from_index_name if CFG_BIBINDEX_SYNONYM_KBRS: for index in CFG_BIBINDEX_SYNONYM_KBRS: index_id = get_index_id_from_index_name(index) synonym = ",".join(CFG_BIBINDEX_SYNONYM_KBRS[index]) query = "UPDATE idxINDEX SET synonym_kbrs='%s' WHERE id=%s" % ( synonym, index_id) run_sql(query)