Как добавить поле "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: И, конечно, исключение из поиска должно быть прокомментировано, как вы упомянули выше

Другие вопросы по тегам