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)
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)
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