开发者

Add contents of Dexterity NamedBlobFile to SearchableText

开发者 https://www.devze.com 2023-04-10 17:43 出处:网络
I\'ve created a dexterity content type that has a NamedBlobFile as one of the fields (users will upload a .pdf). I\'d like to have full-text indexing on that pdf -- like the ATFile type -- but not sur

I've created a dexterity content type that has a NamedBlobFile as one of the fields (users will upload a .pdf). I'd like to have full-text indexing on that pdf -- like the ATFile type -- but not sure what I have to do to make that happen.

I've installed collective.dexteritytextindexer and have gotten some of the other fields added to searchable text by doing开发者_运维百科 this:

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

I'm not sure what to do for the file field. Suggestions?


I think using the searchable() directive should work for NameBlobFiles too.

There is a converter in collective.dexteritytextindexer taking care of transforming the file contents into text so that it is indexable (see the code at github), which also applies for blobs (since the INamedBlobFileField subclasses INamedFileField for which the adapter is registered).

If it does not work its a bug, so please create an issue at the collective.dexteritytextindexer issue tracker.

If the problem is that the field is not defined in your code and you cannot use the searchable directive, there is also a searchable function (import from .utils!) which can be used outside the scope of the schema like this:

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

searchable(IBasic, 'title')
searchable(IBasic, 'description')
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号