检查 ExternalIndexer returns 空索引

Examine ExternalIndexer returns empty Index

我有一个问题,我的外部索引在重建时拒绝获取任何类型的数据。重建索引时,它会删除索引中的所有条目。 我的内部索引工作得很好,并且包含 Umbraco 中的每个节点。

我认为这可能是一个错误 node/entry,因此备份了整个数据库,然后在隔离环境中我开始删除部分,希望其中一个部分可以解决问题.

现在我已经删除了所有内容,并添加了一个新条目。而且我的外部索引仍然坚持为空。

我使用的是 Umbraco 版本 7.1.8 程序集:1.0.5394.16131

索引器的我的检查设置

<ExamineIndexProviders>
 <providers>
  <add name="InternalIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"
       supportUnpublished="true"
       supportProtected="true"
       analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

  <add name="InternalMemberIndexer" type="UmbracoExamine.UmbracoMemberIndexer, UmbracoExamine"
       supportUnpublished="true"
       supportProtected="true"
       analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>

  <!-- default external indexer, which excludes protected and unpublished pages-->
  <add name="ExternalIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"
                 analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>

  <add name="UserIndexer" type="Sinas.Factories.Search.AutoConfiguredExamineUserIndexer, Sinas.Factories" 
                 analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>

 </providers>
</ExamineIndexProviders> 

ExternalIndexSet 的我的 IndexSet

<!-- Default Indexset for external searches, this indexes all fields on all types of nodes-->
  <IndexSet SetName="ExternalIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/External/" />
  <IndexSet SetName="UserIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/User/">
    <IndexUserFields>
      <add Name="id" />
      <add Name="nodeTypeAlias" />
      <add Name="fullName" />
      <add Name="firstName" />
      <add Name="lastName" />
            <add Name="datatitle" />
            <add Name="dataemail" />
            <add Name="dataphone" />
            <add Name="datamobilephone" />
            <add Name="dataskype" />
      <add Name="_unit" />
      <add Name="_unitId" />
      <add Name="_unitIdPath" />
      <add Name="_tagIds" />
      <add Name="_tags" />
      <add Name="_workGroupIds" />
      <add Name="_workGroups" />
            <add Name="_type" />
            <add Name="_definitionName" />
            <add Name="_definitionNameEmpty" />
      <add Name="deleted" />
    </IndexUserFields>
  </IndexSet>

您应该能够使用 LUKE 检查索引 https://code.google.com/archive/p/luke/

您还需要在索引底部添加文档类型

<IndexSet SetName="UserIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/User/">
   <IndexUserFields>
        << Your nodes here >>
   </IndexUserFields>
   <IncludeNodeTypes>
      <add Name="<< Document Type name >>" />
   </IncludeNodeTypes>
</IndexSet>

在 IIS 中停止您的网站,删除现有索引并重新启动网站。这应该用数据填充索引