我正在编写一个包含纯文本和 HTML 字段的敏捷内容类型。我想要一个自定义 SearchableText() 方法,将这些字段公开给 portal_catalog 和 Plone 全文搜索。
我假设对于纯文本,我可以用空格进行字符串连接。但是在 SearchableText() 中公开 HTML 内容时,我应该如何预处理它?
我正在编写一个包含纯文本和 HTML 字段的敏捷内容类型。我想要一个自定义 SearchableText() 方法,将这些字段公开给 portal_catalog 和 Plone 全文搜索。
我假设对于纯文本,我可以用空格进行字符串连接。但是在 SearchableText() 中公开 HTML 内容时,我应该如何预处理它?
为了在 plone 中转换数据,有一个名为 portal_transforms 的工具,它在转换内容方面非常智能(取决于您的操作系统/安装,它也可能能够转换 .doc、.pdf 等):
from Products.CMFCore.utils import getToolByName
transforms = getToolByName(self.context, 'portal_transforms')
stream = transforms.convertTo('text/plain', html, mimetype='text/html')
text = stream.getData().strip()
对于灵巧的索引字段,我建议使用collective.dexteritytextindexer(但目前没有TTW支持)。-> http://pypi.python.org/pypi/collective.dexteritytextindexer -> https://github.com/collective/collective.dexteritytextindexer
干杯
或许collective.dexteritytextindexer可以帮助你得到你想要的部分。