我添加了一个ComputedIndexFields.config文件,其中包含以下代码:
<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<contentSearch>
<indexConfigurations>
<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
}
}
}
我想测试我已编写的一小段代码。所以我在“ComputeFieldValue(IIndexable indexable)”方法的第一行添加了断点并启动了网站(在调试时)。
我更改了几个项目,保存它们然后重建索引树,但我的断点永远不会被击中。
该类位于不同的项目中,并使用程序集名称“be.extensions”构建为.dll
我正在使用sitecore 8 update 2.。
有谁知道我做错了什么或为什么不能达到此代码? (就像这段代码发送到一些我根本无法调试的Lucene工作流程)
答案 0 :(得分:3)
由于Sitecore对Include文件的结构进行了更改,您的配置可能无法修补。即,defaultIndexConfiguration
节点已更改为defaultLuceneIndexConfiguration
以及新的类型属性。您可以使用/sitecore/admin/showconfig.aspx
实用程序页面验证是否正确修补了计算字段。此外,请注意,每个计算索引字段的storageType
和indextype
现在已在<fieldMap><fieldNames>
部分中定义,而不是现在的位置。
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<contentSearch>
<indexConfigurations>
<defaultLuceneIndexConfiguration type="Sitecore.ContentSearch.LuceneProvider.LuceneIndexConfiguration, Sitecore.ContentSearch.LuceneProvider">
<fields hint="raw:AddComputedIndexField">
<field fieldName="yourname">be.extensions.AppliedThemes, be.extensions</field>
</fields>
</defaultLuceneIndexConfiguration>
</indexConfigurations>
</contentSearch>
</sitecore>
</configuration>