Принятое решение может быть немного неясным, поэтому вот несколько пояснений:
1) НЕ редактируйте ваши общие общие настройки.
Если вы не делаете что-то чрезвычайно странное, вы настроите свой сайт как серию дополнительных компонентов и будете иметь структуру папок, такую как:
app.plugin/
app.plugin/app/
app.plugin/app/configure.zcml
app.plugin/app/profiles/
app.plugin/app/profiles/default
app.plugin/app/profiles/default/types
app.plugin/app/profiles/default/types/Folder.xml
app.plugin/app/profiles/default/types/app.mydexteritytype.xml
app.plugin/app/profiles/default/types.xml
app.plugin/app/profiles/default/portlets.xml
app.plugin/app/profiles/default/catalog.xml <---- ADD THIS
2)t имеет , чтобы иметь блок xml (согласно принятому решению) в catalog.xml, вы можете просто создать индекс из внешнего интерфейса ZMI.Тем не менее, если вы сделаете это, он будет взорван при следующей установке плагинов.Так что вы, вероятно, do захотите.
3) После установки вашего catalog.xml перейдите к интерфейсу ZMI к portal_catalog и убедитесь, что на вкладке «indexes» ваш индекс существует.Если вы не ошиблись.
4) Чтобы построить индекс, вам нужно перейти на вкладку "Дополнительно" и выбрать перестроить.
5) Индексатор жадно потребляет исключения и не вызывает их (особенно важно для AttributeError; вы не можете индексировать некоторые значения, которые хотите индексировать), поэтому, если вы хотите убедиться, что ваш индексатор действительно работает, попробуйте добавить оператор log или printв нем:
@indexer(IMyDexterityType)
def dummy_indexer(obj, **kw):
try:
print('indexed: %r' % obj)
return obj.title
except Exception as e:
print('index fail: %r' % e)
return ''
Если ничего другого, вы должны увидеть некоторые выходные данные, такие как:
2013-08-12 16:42:28 INFO GenericSetup.archetypetool Archetype tool imported.
2013-08-12 16:42:28 INFO GenericSetup.resourceregistry Stylesheet registry imported.
2013-08-12 16:42:28 INFO GenericSetup.resourceregistry Javascript registry imported.
indexed: <MyDexterityType at /Plone/test/cat-document-0>
indexed: <MyDexterityType at /Plone/test/hello>
6) grok.global_adapter (), как упомянуто в некоторых документах (http://developer.plone.org/reference_manuals/external/plone.app.dexterity/advanced/catalog-indexing-strategies.html?highlight=custom%20indexing#creating-custom-indexers) касается регистрации виртуальных свойств и не уменьшает необходимость в настройке вашего catalog.xml.
Наконец, кто-то выложил здесь рабочий пример на github, что чрезвычайно полезно:
https://github.com/aclark4life/event_days_indexer