Exemple #1
0
 def getFieldTypes(self):
     """Return a list of possible types for a field.
     """
     fieldtypes = [(pair[0], pair[1][0])
                   for pair in get_field_types().items()]
     fieldtypes.sort(key=lambda f: f[1])
     return fieldtypes
Exemple #2
0
    def createFieldIndex(self, fieldname, fieldtype, refresh=True):
        """
        """
        indextype = get_field_types()[fieldtype][1]
        if indextype == 'ZCTextIndex':
            plaintext_extra = SimpleRecord(lexicon_id='plaintext_lexicon',
                                           index_type='Okapi BM25 Rank')
            if not fieldname in self.indexes():
                self.addIndex(fieldname, 'ZCTextIndex', plaintext_extra)
            if fieldtype == 'ATTACHMENT' and self.getParentDatabase(
            ).getIndexAttachments():
                if not 'PlominoFiles_' + fieldname in self.indexes():
                    self._catalog.addIndex(
                        'PlominoFiles_' + fieldname,
                        PlominoFileIndex('PlominoFiles_' + fieldname,
                                         caller=self,
                                         extra=plaintext_extra))
        else:
            if not fieldname in self.indexes():
                self.addIndex(fieldname, indextype)

        if not self._catalog.schema.has_key(fieldname):
            self.addColumn(fieldname)

        if refresh:
            self.refresh()
Exemple #3
0
    def createFieldIndex(self,
                         fieldname,
                         fieldtype,
                         refresh=True,
                         indextype='DEFAULT',
                         fieldmode=None):
        """
        """
        if indextype == 'DEFAULT':
            indextype = get_field_types()[fieldtype][1]
        if indextype == 'ZCTextIndex':
            plaintext_extra = SimpleRecord(lexicon_id='plaintext_lexicon',
                                           index_type='Okapi BM25 Rank')
            if not fieldname in self.indexes():
                self.addIndex(fieldname, 'ZCTextIndex', plaintext_extra)
            if (fieldtype == 'ATTACHMENT'
                    and self.getParentDatabase().getIndexAttachments()):
                if not 'PlominoFiles_' + fieldname in self.indexes():
                    self._catalog.addIndex(
                        'PlominoFiles_%s' % fieldname,
                        PlominoFileIndex('PlominoFiles_%s' % fieldname,
                                         caller=self,
                                         extra=plaintext_extra))
        else:
            if not fieldname in self.indexes():
                if fieldmode == 'DISPLAY':
                    display_extra = SimpleRecord(
                        indexed_attrs='%s%s' %
                        (DISPLAY_INDEXED_ATTR_PREFIX, fieldname))
                    self.addIndex(fieldname, indextype, extra=display_extra)
                else:
                    self.addIndex(fieldname, indextype)

        if not self._catalog.schema.has_key(fieldname):
            self.addColumn(fieldname)

        if refresh:
            self.refresh()
Exemple #4
0
 def getFieldTypes(self):
     """Return a list of possible types for a field.
     """
     fieldtypes = [(pair[0], pair[1][0]) for pair in get_field_types().items()]
     fieldtypes.sort(key=lambda f:f[1])
     return fieldtypes