我创建了一个dexterity内容类型,其中NamedBlobFile作为其中一个字段(用户将上传.pdf)。我希望对该pdf进行全文索引 - 比如ATFile类型 - 但不确定我必须做些什么来实现这一点。
我已经安装了collective.dexteritytextindexer,并通过这样做将其他一些字段添加到可搜索的文本中:
searchable('paper_author')
paper_author = schema.Text(title=_(u"Author"), required=False)
我不确定该怎么做文件字段。建议?
答案 0 :(得分:0)
我认为使用searchable()
指令也适用于NameBlobFiles。
collective.dexteritytextindexer
中有一个转换器负责将文件内容转换为文本,以便它可以编入索引(请参阅the code at github),这也适用于blob(因为INamedBlobFileField
子类适配器已注册的INamedFileField
。
如果它不起作用,请在collective.dexteritytextindexer issue tracker创建一个问题。
如果问题是代码中没有定义字段而你不能使用searchable
指令,那么还有searchable
函数(从.utils
导入!),它可以可以在架构范围之外使用,如下所示:
from plone.app.dexterity.behaviors.metadata import IBasic
from collective.dexteritytextindexer.utils import searchable
searchable(IBasic, 'title')
searchable(IBasic, 'description')