Search code examples
.netsitecoreextendcomputed-field

Simple sitecore include file gone wrong ( ComputedIndexFields.config )


I add a ComputedIndexFields.config files with the following code:

<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <contentSearch>
      <configuration>
         <defaultIndexConfiguration>
          <fields hint="raw:AddComputedIndexField">
            <field fieldName="AppliedThemes" storageType="yes" indexType="TOKENIZED">be.extensions.AppliedThemes, be.extensions</field>
          </fields>
        </defaultIndexConfiguration>
      </configuration>
    </contentSearch>
  </sitecore>
</configuration>

I also added a class in said assemlby:

namespace be.extensions
{
    class AppliedThemes : IComputedIndexField
    {

        public string FieldName { get; set; }
        public string ReturnType { get; set; }

        public object ComputeFieldValue(IIndexable indexable)
        {
        Item item = indexable as SitecoreIndexableItem;
        if (item == null)
            return null;

        var themes = item["Themes"];
        if (themes == null)
            return null;

        // TODO
        }
    }
}

This is the very basic of adding a computed index field. Yet when i add these 2 files ( code in class file is never reached ) i get the following error when i open the content editor:

SearchConfiguration is not configured correctly. ContentSearchConfiguration was expected but System.String was returned.

Without this simple config file everything works fine.

Does anyone see what i did wrong here or know what i can try to fix this ?

EDIT: I'm using Sitecore 8 Update 2


Solution

  • I think your patch file needs to lead to the following XPath

    /sitecore/contentSearch/indexConfigurations/defaultLuceneIndexConfiguration/fields
    

    So something like this:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
      <sitecore>
        <contentSearch>
          <indexConfigurations>
             <defaultLuceneIndexConfiguration>
              <fields hint="raw:AddComputedIndexField">
                <field fieldName="AppliedThemes">be.extensions.AppliedThemes, be.extensions</field>
              </fields>
            </defaultLuceneIndexConfiguration>
          </indexConfigurations>
        </contentSearch>
      </sitecore>
    </configuration>