Как добавить поле "NeverPublish" в индекс lucene на Sitecore?
Я работаю над небольшим внутренним приложением на Sitecore 8. Как функция, приложение должно быстро искать среди тысяч элементов и находить, какой из них не подлежит публикации. Насколько я знаю, мне нужно добавить соответствующее поле в индекс Lucene. Я провел исследование в Google и обнаружил, что люди могут получить доступ к этой собственности через __Never publish
поле. Например, они используют его на сайте PowerCore PowerShell для переключения этого логического свойства (я пробовал, и это работает).
Однако я изо всех сил пытаюсь заставить это работать в индексе Lucene. Я добавил что-то вроде этого в свое определение индекса в базе данных master:
<configuration ref="contentSearch/indexConfigurations/defaultLuceneIndexConfiguration">
<fieldMap type="Sitecore.ContentSearch.FieldMap, Sitecore.ContentSearch">
<fieldNames hint="raw:AddFieldByFieldName">
<field fieldName="title" storageType="YES" indexType="TOKENIZED" vectorType="NO" boost="1f" type="System.String" settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider" />
...
<field fieldName="__Never publish" storageType="YES" indexType="TOKENIZED" vectorType="NO" boost="1f" type="System.String" settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider" />
</fieldNames>
</fieldMap>
</configuration>
Любое поле, которое я добавляю в индекс (даже некоторые встроенные поля), может быть проиндексировано, и содержимое также может быть сохранено. (как и "title" в вышеприведенном примере), но я не понимаю, почему поле neverpublish этого не делает.
Я посмотрел в другие файлы конфигурации и обнаружил, что он исключен из индексации внутри Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config
и определение таково:
<exclude hint="list:ExcludeField">
....
<NeverPublish>{9135200A-5626-4DD8-AB9D-D665B8C11748}</NeverPublish>
....
<exclude>
Затем я прокомментировал это, но все равно не повезло. Интересно, правильно ли я ссылаюсь на имя поля или есть что-то еще, чего я не должен делать? Любое предложение?
1 ответ
Эта конфигурация прекрасно работает для меня:
Он отличается от вашего с типом: type="System.Boolean"
PS: И, конечно, исключение из поиска должно быть прокомментировано, как вы упомянули выше