Sitecore:索引树列表字段时出错?

Sitecore:索引树列表字段时出错?,sitecore,sitecore8,sitecore-lucene,Sitecore,Sitecore8,Sitecore Lucene,我在Sitecore中有一个索引。正在编制索引的模板的一个字段是名为“tags”的树列表字段。当我使用Luke检查索引时,我看到字段,它有值 1.)标记索引中的值是所选树列表项的ID——我需要它作为显示名称 2.)现在,我的爬行日志中充满了: 警告:您同时指定了IncludeTemplates和ExcludeTemplates。 不支持此逻辑。排除模板将被忽略 这就是我的索引配置,但显然我有一些不正确的地方: $(id) $(id) {AD63DB1D-A3A5-4D16-9F19-7D878

我在Sitecore中有一个索引。正在编制索引的模板的一个字段是名为“tags”的树列表字段。当我使用Luke检查索引时,我看到字段,它有值

1.)标记索引中的值是所选树列表项的ID——我需要它作为显示名称

2.)现在,我的爬行日志中充满了:

警告:您同时指定了IncludeTemplates和ExcludeTemplates。 不支持此逻辑。排除模板将被忽略

这就是我的索引配置,但显然我有一些不正确的地方:


$(id)
$(id)
{AD63DB1D-A3A5-4D16-9F19-7D878BBE2568}
{85901309-D07C-447B-97DA-EA6F1581832C}
{C49A9219-231D-42C6-AED2-9115CC241247}
真的
网状物
/sitecore/内容/站点/我的站点/知识中心

更新:@Marek Musielak——对于#1,我遵循了您在答案中指出的链接,并且在我的爬网日志中反复出现了此类错误。日志:

6272 12:49:18错误无法计算ComputedIndexField的值: 可转位的可能性: sitecore://master/{2D06E798-6BFE-4089-A610-5C341BF28B09}?lang=en&ver=3 异常:System.Reflection.TargetInvocationException消息: 调用的目标已引发异常。资料来源: System.RuntimeMethodHandle.InvokeMethod(对象目标, 对象[]参数、签名sig、布尔构造函数)位于 System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr,Binder Binder,对象[]参数,CultureInfo区域性)
在Sitecore.Reflection.ReflectionUtil.CreateObject(类型,Object[] 参数)在 Sitecore.Configuration.Factory.CreateFromTypeName(XmlNode configNode, 字符串[]参数,布尔断言)位于 Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, 字符串[]参数、布尔断言、IFactoryHelper帮助程序)位于 Sitecore.Configuration.Factory.GetInnerObject(XmlNode paramNode, 字符串[]参数,布尔断言)位于 Sitecore.Configuration.Factory.AssignProperties(XmlNode configNode, 字符串[]参数、对象对象、布尔断言、布尔延迟、, IFactoryHelper(帮助者)位于 Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, 字符串[]参数、布尔断言、IFactoryHelper帮助程序)位于 Sitecore.Configuration.Factory.CreateObject(字符串configPath, 字符串[]参数,布尔断言)位于 Sitecore.Analytics.Reporting.ReportingQueryBase..ctor(ReportDataProviderBase 报告提供程序,CachingPolicy(CachingPolicy)位于 Sitecore.ContentTesting.Analytics.Reporting.TestPotentialQuery..ctor(ReportDataProviderBase 报告提供者)在 Sitecore.ContentTesting.ContentSearch.ComputedIndexFields.TestPotentialMetricBase.ComputeFieldValue(IIIndexable 可转位的 Sitecore.ContentSearch.LuceneProvider.LuceneDocumentBuilder.AddComputedIndexFields()

嵌套异常

异常:System.Reflection.TargetInvocationException消息: 调用的目标已引发异常。资料来源: System.RuntimeMethodHandle.InvokeMethod(对象目标, 对象[]参数、签名sig、布尔构造函数)位于 System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr,Binder Binder,对象[]参数,CultureInfo区域性)
在Sitecore.Reflection.ReflectionUtil.CreateObject(类型,Object[] 参数)在 Sitecore.Configuration.Factory.CreateFromTypeName(XmlNode configNode, 字符串[]参数,布尔断言)位于 Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, 字符串[]参数、布尔断言、IFactoryHelper帮助程序)位于 Sitecore.Configuration.Factory.CreateObject(字符串configPath, 字符串[]参数,布尔断言)位于 Sitecore.Analytics.Reports.StimulsofIntegration.BuiltInFunctionsReportDataSource..ctor()

嵌套异常

异常:System.InvalidOperationException消息:无法使用 DataAdapterProvider as Analytics已禁用。资料来源: Sitecore.Analytics.MongoDB位于 Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbDataAdapterProvider..ctor(函数'2 司机工厂)

为什么它关心分析是否被禁用


更新2:@Rogier

我需要将fieldMap移动到defaultLuceneIndexConfiguration:

<defaultLuceneIndexConfiguration type="Sitecore.ContentSearch.LuceneProvider.LuceneIndexConfiguration, Sitecore.ContentSearch.LuceneProvider">
<fieldMap type="Sitecore.ContentSearch.FieldMap, Sitecore.ContentSearch">
    <fieldNames hint="raw:AddFieldByFieldName">
        <field patch:before="field[0]" fieldName="tags" storageType="YES" indexType="UNTOKENIZED" vectorType="NO" boost="1f" type="System.String" settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider" />
    </fieldNames>
</fieldMap>
<fields hint="raw:AddComputedIndexField">
    <field patch:before="field[0]" fieldName="tags">MyNamespace.Search.ComputedFields, MyNamespace.Search</field>
</fields>

MyNamespace.Search.ComputedFields,MyNamespace.Search

主索引补丁最终看起来像:

<index id="knowledge_center_index" type="Sitecore.ContentSearch.LuceneProvider.LuceneIndex, Sitecore.ContentSearch.LuceneProvider">
    <param desc="name">$(id)</param>
    <param desc="folder">$(id)</param>
    <!-- This initializes index property store. Id has to be set to the index id -->
    <param desc="propertyStore" ref="contentSearch/indexConfigurations/databasePropertyStore" param1="$(id)" />
    <configuration ref="contentSearch/indexConfigurations/defaultLuceneIndexConfiguration">
        <include hint="list:IncludeTemplate">
            <generalTemplatePage>{AD63DB1D-A3A5-4D16-9F19-7D878BBE2568}</generalTemplatePage>
            <newsPage>{85901309-D07C-447B-97DA-EA6F1581832C}</newsPage>
            <inTheNewsPage>{C49A9219-231D-42C6-AED2-9115CC241247}</inTheNewsPage>
        </include>
        <IndexAllFields>true</IndexAllFields>
    </configuration>
    <strategies hint="list:AddStrategy">
        <!-- NOTE: order of these is controls the execution order -->
        <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/onPublishEndAsync" />
        <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/remoteRebuild" />
    </strategies>
    <commitPolicyExecutor type="Sitecore.ContentSearch.CommitPolicyExecutor, Sitecore.ContentSearch">
        <policies hint="list:AddCommitPolicy">
            <policy type="Sitecore.ContentSearch.TimeIntervalCommitPolicy, Sitecore.ContentSearch" />
        </policies>
    </commitPolicyExecutor>
    <locations hint="list:AddCrawler">
        <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
            <Database>web</Database>
            <Root>/sitecore/content/Sites/My Site/Knowledge Center</Root>
        </crawler>
    </locations>

$(id)
$(id)
{AD63DB1D-A3A5-4D16-9F19-7D878BBE2568}
{85901309-D07C-447B-97DA-EA6F1581832C}
{C49A9219-231D-42C6-AED2-9115CC241247}
真的
网状物
/sitecore/内容/站点/我的站点/知识中心

我希望这是有帮助的…

广告1):

默认情况下,Sitecore索引所选项目的ID。原因很简单:让我们先假设Sitecore存储标记的名称。假设您为
MyArticle
项目选择了
TagA
TagB
。Sitecore为您的
MyArticle
项目编制索引,并将
TagA
TagB
值保存在索引中。现在您将
TagA
重命名为
Other TagA
。Sitecore不会重新抓取您的
MyArticle
,因为它没有更改(只更改了标记项)。所以您的
MyArticle
项目在索引中的值不正确-它仍然在那里

当然,如果你知道你永远不会改变