【问题标题】:Examine Indexer检查索引器
【发布时间】:2013-08-15 04:43:18
【问题描述】:

我正在处理一个 asp.net 项目,但在更改检查索引器时遇到了一些问题。

我以前使用 StandardAnalyzer 作为索引器,但现在我需要使用 ArabicAnalyzer 作为索引器。 当单独测试它时,我所做的只是改变:

<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 行:

描述:处理此请求所需的配置文件时出错。请查看下面的具体错误详细信息并适当地修改您的配置文件。

解析器错误消息:值不能为空。

我没有找到解决方案。 你有什么想法可以解决这个问题吗?

更新:

<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>

【问题讨论】:

    标签: umbraco


    【解决方案1】:

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

    索引都存储在~/app_data/Temp/ExamineIndexes/,因此您可以从in此文件夹中删除特定的索引文件夹并重新启动应用程序。这应该会提示 Umbraco 开始重新索引内容。

    此外,您还应该设置ExamineSearchProvider,而不仅仅是ExamineIndexProvider。这是在同一个配置文件中。这可确保使用相同的 Analyzer 类型来搜索结果,就像索引它们一样。

    编辑

    查看配置,您在ExternalSearcher 上缺少Analyzer=""

    进一步编辑

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

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

    请看这里:http://lucenenet.apache.org/docs/3.0.3/d2/d94/class_lucene_1_1_net_1_1_analysis_1_1_a_r_1_1_arabic_analyzer.html

    【讨论】:

    • 我试过了,同样的错误。我正在通过 Visual Studio 运行该项目,在删除 ~/app_data/Temp/ExamineIndexes/ 后它没有重新索引,现在没有索引文件。
    • 您是否设置了索引的其他配置设置?
    • 索引的其他配置设置是什么意思?我已经更新了我在 ExamineSettings.config 文件中发布的问题,请查看。
    • “查看配置,您在 ExternalSearcher 上缺少 Analyzer=""”不是问题,因为到目前为止它运行良好。添加 ArabicAnalyzer 会导致问题,ArabicAnalyzer 类型会导致问题吗?需要换吗?
    【解决方案2】:

    我想通了,我应该做的是改变:

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

    与:

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

    同时更改 SearchProvider。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      • 2021-07-22
      • 2013-08-23
      相关资源
      最近更新 更多