'Note that self._text_extractors must be overriden by subclasses'

def indexableText(self, include_properties=True):

    text = set()
    for extractor in self._text_extractors:
        for tree in self.content_types.getTreesFor(self, extractor.content_type):
            words = extractor.indexableText(tree)
            text |= words
    if include_properties:
        for prop_value in self.allProperties.values():
            if (prop_value is not None):
                text.add(prop_value)
    return u'    '.join([word for word in text])
