Umbraco 检查索引器

Umbraco 检查索引器,umbraco,Umbraco,我正在从事一个asp.net项目,在更改检查索引器时遇到一些问题 我以前用标准分析仪作为索引器,但现在我需要用阿拉伯运河分析仪作为索引器。 单独测试时,我所做的一切都在改变: <add name="EntityIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine" supportUnpublished="false" supportProtected="false" interval="10" analyze

我正在从事一个asp.net项目,在更改检查索引器时遇到一些问题

我以前用标准分析仪作为索引器,但现在我需要用阿拉伯运河分析仪作为索引器。 单独测试时,我所做的一切都在改变:

<add name="EntityIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"
supportUnpublished="false"
supportProtected="false"
interval="10"
analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>
<add name="EntityIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"
supportUnpublished="false"
supportProtected="false"
interval="10"
analyzer="Lucene.Net.Analysis.AR, Lucene.Net"/>

与:


它工作正常。 当我试图在我现有的项目上做同样的事情时,我在一个YSOD页面中得到了以下异常

第31行: 描述:处理服务此请求所需的配置文件时出错。请查看下面的特定错误详细信息,并适当修改配置文件

分析器错误消息:值不能为null

我没有找到解决办法。 你有什么办法解决这个问题吗

更新:

<Examine>
  <ExamineIndexProviders>
    <providers>
      <add name="InternalIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"
           supportUnpublished="false"
           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"/>

      <add name="EntityIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"
             supportUnpublished="false"
             supportProtected="false"
             interval="10"
             analyzer="Lucene.Net.Analysis.AR, Lucene.Net"/>

    </providers>
  </ExamineIndexProviders>

  <ExamineSearchProviders defaultProvider="ExternalSearcher">
    <providers>
      <add name="InternalSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"
           analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

      <add name="ExternalSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine" />

      <add name="InternalMemberSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"
           analyzer="Lucene.Net.Analysis.AR, Lucene.Net" enableLeadingWildcards="true"/>

    <add name="EntitySearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"
     analyzer="Lucene.Net.Analysis.AR, Lucene.Net" enableLeadingWildcards="true"/>
    </providers>
  </ExamineSearchProviders>

</Examine>

如果在现有项目上失败,您可能需要删除现有索引,然后重新启动应用程序

索引都存储在
~/app\u data/Temp/examiceIndexes/
中,因此您可以从该文件夹中删除特定的索引文件夹,然后重新启动应用程序。这将提示Umbraco开始重新索引内容

此外,您还应该设置
检查搜索提供程序
,而不仅仅是
检查索引提供程序
。这在同一个配置文件中。这样可以确保使用与索引结果相同的
Analyzer
类型来搜索结果

编辑


查看配置,您在
ExternalSearcher

进一步编辑

Lucene.Net.Analysis.AR
不是有效的analyzer值,它只是analyzer的名称空间。我没有像我假设的那样进行检查,但在这两种情况下,值都应该是:

analyzer="Lucene.Net.Analysis.AR.ArabicAnalyzer, Lucene.Net"

看这里:

我明白了,我应该做的是改变:

<add name="EntityIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"
supportUnpublished="false"
supportProtected="false"
interval="10"
analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>
<add name="EntityIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"
supportUnpublished="false"
supportProtected="false"
interval="10"
analyzer="Lucene.Net.Analysis.AR, Lucene.Net"/>

与:



以及更改SearchProvider。

我尝试了这个,同样的错误。我正在通过Visual Studio运行该项目,在删除~/app\u data/Temp/examiceIndexes/后,它没有重新索引,现在没有索引文件。您是否为索引设置了其他配置设置?其他索引配置设置是什么意思?我已经将我的问题更新到了testesettings.config文件中,请查看。“查看配置,您缺少ExternalSearcher上的Analyzer=”“”不是问题,因为它到目前为止工作正常。添加阿拉伯运河分析仪会导致问题,阿拉伯运河分析仪类型会导致问题吗?我需要换吗?