我正在从事一个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>发布于 2013-08-12 14:04:09
如果在现有项目上失败,则可能需要删除现有索引,然后重新启动应用程序。
索引都存储在~/app_data/Temp/ExamineIndexes/中,因此您可以从该文件夹中删除特定的索引文件夹并重新启动应用程序。这将提示Umbraco开始重新建立内容的索引。
此外,您还应该设置ExamineSearchProvider,而不仅仅是ExamineIndexProvider。这是在同一个配置文件中。这确保使用相同的Analyzer类型搜索结果和索引结果。
编辑
查看配置,您在ExternalSearcher上缺少了一个ExternalSearcher
进一步编辑
值Lucene.Net.Analysis.AR不是有效的分析器值,它只是分析器的名称空间。我没有像我想象的那样检查,但在这两种情况下,值都应该是:
analyzer="Lucene.Net.Analysis.AR.ArabicAnalyzer, Lucene.Net"见此处:analyzer.html
发布于 2013-08-13 11:49:08
我明白了,我应该做的是改变:
<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。
https://stackoverflow.com/questions/18187613
复制相似问题