我使用以下代码添加ComputedIndexFields.config文件:
<?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>
我还在所说的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
}
}
}
这是添加计算索引字段的基础。然而,当我添加这两个文件(从未到达类文件中的代码)时,我打开内容编辑器时出现以下错误:
未正确配置SearchConfiguration。预期ContentSearchConfiguration但返回了System.String。
如果没有这个简单的配置文件,一切正常。
有谁看到我在这里做错了或知道我可以尝试解决这个问题?
编辑:我正在使用Sitecore 8 Update 2
答案 0 :(得分:4)
我认为您的补丁文件需要导致以下XPath
/sitecore/contentSearch/indexConfigurations/defaultLuceneIndexConfiguration/fields
这样的事情:
<?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>