Example #1
0
def setup_catalog(context):
    portal = context.getSite()

    catalog_name = 'marginalia_catalog'
    try:
        catalog = cmfutils.getToolByName(portal, catalog_name)
    except AttributeError:
        # register catalog
        catalog = ZCatalog(catalog_name, u'Marginalia catalog', None, portal)
        portal._setObject(catalog_name, catalog)
            
    # add indexes and columns
    plaintext_extra = SimpleRecord(lexicon_id='plaintext_lexicon',
                                   index_type='Okapi BM25 Rank')

    indexes = catalog.indexes()
    columns = catalog.schema()

    # install lexicon
    _id = 'plaintext_lexicon'
    if not hasattr(catalog, _id):
        lexicon = PLexicon(
            _id, '', Splitter(), CaseNormalizer(), StopWordRemover())
        catalog._setObject(_id, lexicon)

        for indexName, indexType, extra in (
            ('edit_type', 'FieldIndex', None),
            ('note', 'ZCTextIndex', plaintext_extra),
            ('link_title', 'FieldIndex', None)):      
            
            if indexName not in indexes:
                catalog.addIndex(indexName, indexType, extra=extra)
Example #2
0
def setup_catalog(context):
    portal = context.getSite()

    catalog_name = 'marginalia_catalog'
    try:
        catalog = cmfutils.getToolByName(portal, catalog_name)
    except AttributeError:
        # register catalog
        catalog = ZCatalog(catalog_name, u'Marginalia catalog', None, portal)
        portal._setObject(catalog_name, catalog)

    # add indexes and columns
    plaintext_extra = SimpleRecord(lexicon_id='plaintext_lexicon',
                                   index_type='Okapi BM25 Rank')

    indexes = catalog.indexes()
    columns = catalog.schema()

    # install lexicon
    _id = 'plaintext_lexicon'
    if not hasattr(catalog, _id):
        lexicon = PLexicon(_id, '', Splitter(), CaseNormalizer(),
                           StopWordRemover())
        catalog._setObject(_id, lexicon)

        for indexName, indexType, extra in (('edit_type', 'FieldIndex',
                                             None), ('note', 'ZCTextIndex',
                                                     plaintext_extra),
                                            ('link_title', 'FieldIndex',
                                             None)):

            if indexName not in indexes:
                catalog.addIndex(indexName, indexType, extra=extra)
Example #3
0
    def CreateCatalog(self):
        """ creates ZCatalog object """
        catalog = ZCatalog(DOCMANAGER_CATALOG, '')
        self._setObject(DOCMANAGER_CATALOG, catalog)
        catalog = self._getOb(DOCMANAGER_CATALOG)
        """ creates some indexes """
        available_indexes = catalog.indexes()
        available_metadata = catalog.schema()
        if not ('id' in available_indexes):
            catalog.addIndex('id', 'FieldIndex')
        if not ('id' in available_metadata):
            catalog.addColumn('id')

        if not ('meta_type' in available_indexes):
            catalog.addIndex('meta_type', 'FieldIndex')
        if not ('meta_type' in available_metadata):
            catalog.addColumn('meta_type')

        if not ('title' in available_indexes):
            catalog.addIndex('title', 'TextIndex')
        if not ('title' in available_metadata):
            catalog.addColumn('title')

        if not ('path' in available_indexes):
            catalog.addIndex('path', 'PathIndex')
        
        try:
            catalog.Vocabulary(id='Vocabulary', title='')
        except:
            pass

        if not ('description' in available_indexes):
            catalog.addIndex('description', 'TextIndex')
        
        if not ('abstract' in available_indexes):
            catalog.addIndex('abstract', 'TextIndex')
        
        if not ('author' in available_indexes):
            catalog.addIndex('author', 'TextIndex')
        
        if not ('keywords' in available_indexes):
            catalog.addIndex('keywords', 'FieldIndex')

        if not ('coverage' in available_indexes):
            catalog.addIndex('coverage', 'FieldIndex')
        
        catalog.addIndex('approved', 'TextIndex')

        if not ('indexThematicArea' in available_indexes):
            catalog.addIndex('indexThematicArea', 'FieldIndex')

        try:
            if not ('PrincipiaSearchSource' in available_indexes):
                catalog.addIndex('PrincipiaSearchSource', 'TextIndexNG2', extra={'default_encoding': 'utf-8', 'use_converters':1, 'autoexpand':1})
        except:
            pass