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)
コード例 #3
0
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)
コード例 #4
0
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)