将Dexterity NamedBlobFile的内容添加到SearchableText

时间:2011-10-05 17:27:38

标签: full-text-search plone dexterity

我创建了一个dexterity内容类型,其中NamedBlobFile作为其中一个字段(用户将上传.pdf)。我希望对该pdf进行全文索引 - 比如ATFile类型 - 但不确定我必须做些什么来实现这一点。

我已经安装了collective.dexteritytextindexer,并通过这样做将其他一些字段添加到可搜索的文本中:

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

我不确定该怎么做文件字段。建议?

1 个答案:

答案 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')