Добавить содержимое Dexterity NamedBlobFile в SearchableText - PullRequest
2 голосов
/ 05 октября 2011

Я создал тип контента «Ловкость», в котором в качестве одного из полей указан NamedBlobFile (пользователи будут загружать файл .pdf).Я хотел бы иметь полнотекстовую индексацию в этом PDF-файле - например, тип ATFile - но не уверен, что мне нужно сделать, чтобы это произошло.

Я установил colle.dexteritytextindexer и добавил некоторые другие поля в текст для поиска, выполнив следующее:

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

Я не уверен, что делать с полем файла,Предложения?

1 Ответ

0 голосов
/ 01 января 2013

Я думаю, что использование директивы searchable() должно работать и для NameBlobFiles.

В collective.dexteritytextindexer имеется конвертер, который заботится о преобразовании содержимого файла в текст, чтобы он был индексируемым (см. код в github ), который также применяется к BLOB-объектам (так как INamedBlobFileField подклассы INamedFileField, для которых зарегистрирован адаптер).

Если это не сработает, это ошибка, поэтому, пожалуйста, создайте проблему в colle.dexteritytextindexer трекере проблем .

Если проблема в том, что поле не определено в вашем коде, и вы не можете использовать директиву searchable, существует также функция searchable (импорт из .utils!), Которая может использоваться вне области действия схема такая:

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

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