2

我创建了一个灵巧的内容类型,其中有一个 NamedBlobFile 作为字段之一(用户将上传一个 .pdf)。我想对该 pdf 进行全文索引——比如 ATFile 类型——但不确定我必须做什么才能实现这一点。

我已经安装了collective.dexteritytextindexer,并通过执行以下操作将其他一些字段添加到可搜索文本中:

searchable('paper_author')
paper_author = schema.Text(title=_(u"Author"), required=False)

我不确定如何处理文件字段。建议?

4

1 回答 1

0

我认为使用该searchable()指令也应该适用于 NameBlobFiles。

有一个转换器collective.dexteritytextindexer负责将文件内容转换为文本,使其可索引(参见github 上的代码),这也适用于 blob(因为适配器注册的INamedBlobFileField子类)。INamedFileField

如果它不起作用,它是一个错误,所以请在collective.dexteritytextindexer 问题跟踪器上创建一个问题。

如果问题是您的代码中没有定义该字段并且您不能使用该searchable指令,那么还有一个searchable函数(从!导入.utils!)可以在架构范围之外使用,如下所示:

from plone.app.dexterity.behaviors.metadata import IBasic
from collective.dexteritytextindexer.utils import searchable

searchable(IBasic, 'title')
searchable(IBasic, 'description')
于 2013-01-01T16:04:43.033 回答