Как добавить текст в поле _content в индексе Solr для реализации Sitecore?

Это для реализации Sitecore 7.5 - Solr 4.7. Я хотел бы иметь возможность изменить текст, который хранится в поле _content в Solr. Я считаю, что каким-то образом этот Sitecore объединяет все поля содержимого для элемента в поле _content в индексе. (Я думаю, что это правильно). Во время индекса я хотел бы иметь возможность написать свой собственный код, который потенциально может изменить текст, который хранится в поле _content в Solr. Это возможно? Есть идеи, как бы я поступил по этому поводу?

1 ответ

_content является вычисляемым полем, что означает, что значение разрешается в момент сканирования элемента. Вы увидите, что вычисленное поле определено в вашей конфигурации:

<field fieldName="_content" returnType="string" type="Sitecore.ContentSearch.ComputedFields.MediaItemContentExtractor,Sitecore.ContentSearch">
  <mediaIndexing ref="contentSearch/indexConfigurations/defaultSolrIndexConfiguration/mediaIndexing"/>
</field>

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

С вычисленными полями действительно довольно просто работать. Они реализуют IComputedIndexField который требует ComputeFieldValue метод. Метод принимает аргумент типа IIndexable (в большинстве случаев конкретный класс Item) и вызывается каждый раз, когда элемент сканируется.

Так что в ComputeFieldValue метод, который вы могли бы разыграть Iindexable для Item, а затем вернуть объединенную строку всех значений полей, которые вы хотите включить из этого элемента.

Смотрите здесь для получения дополнительной информации о вычисляемых полях:

http://www.sitecore.net/learn/blogs/technical-blogs/john-west-sitecore-blog/posts/2013/03/sitecore-7-computed-index-fields.aspx

Из того, что я понимаю, вы можете добавить еще один (отдельный) _content поле с вашим собственным IComputedIndexField реализация. Результирующие значения из всех добавленных полей с одинаковыми именами суммируются.

Смотрите также: https://kamsar.net/index.php/2014/05/indexing-subcontent/ и https://andrewwburns.com/2015/09/03/appending-to-the-_content-field-in-sitecore-search-7-2-and-7-5/

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