使用WhitespaceAnalyzer找不到带连字符的单词-检查搜索Umbraco

使用WhitespaceAnalyzer找不到带连字符的单词-检查搜索Umbraco,umbraco,lucene.net,analyzer,hyphen,examine,Umbraco,Lucene.net,Analyzer,Hyphen,Examine,我在Umbraco 7应用程序中使用了检查搜索。不知何故,在搜索包含连字符的单词(例如“标记名”)时,我没有得到任何结果 我已经设置了Examine,以便对EXAMINESARCHPROVIDER和EXAMINDEXPROVIDER使用WhitespaceAnalyzer。我还删除了tempfolder中的缓存,但仍然没有结果。我已经检查了数据库中的值,它们的格式与查询“XXX XXX”的格式相同。我还试图逃避查询,但这并没有改变结果 这里有什么我没看到的吗 在testesettings.con

我在Umbraco 7应用程序中使用了检查搜索。不知何故,在搜索包含连字符的单词(例如“标记名”)时,我没有得到任何结果

我已经设置了Examine,以便对EXAMINESARCHPROVIDER和EXAMINDEXPROVIDER使用WhitespaceAnalyzer。我还删除了tempfolder中的缓存,但仍然没有结果。我已经检查了数据库中的值,它们的格式与查询“XXX XXX”的格式相同。我还试图逃避查询,但这并没有改变结果

这里有什么我没看到的吗

在testesettings.config中:

<Examine>
    <ExamineIndexProviders>
        <providers>

  <!-- custom search index provider -->
  <add name="MySearchIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"
   supportUnpublished="false"
   supportProtected="true"
   interval="10"
   analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"
   indexSet="MySearch"/>

   </providers>
</ExamineIndexProviders>

<ExamineSearchProviders defaultProvider="MySearchSearcher">
   <providers>

    <!-- custom search provider -->
     <add name="MySearchSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"
       analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net" indexSet="MySearch"  enableLeadingWildcards="true"/>


      </providers>
   </ExamineSearchProviders>

</Examine> 

在ExamineIndex.config中:

<ExamineLuceneIndexSets>

<IndexSet SetName="MySearch" IndexPath="~/App_Data/TEMP/ExamineIndexes/MySearch/">
<IndexAttributeFields>
  <add Name="id" />
  <add Name="nodeName"/>
  <add Name="updateDate" />
  <add Name="writerName" />
  <add Name="nodeTypeAlias" />
</IndexAttributeFields>
<IndexUserFields>
  <add Name="nodeName" />
  <add Name="content"/>
  <add Name="tags" />
  <add Name="category" />
</IndexUserFields> 
<IncludeNodeTypes>
  <add Name="article" />
  <add Name="note" />
</IncludeNodeTypes>
</IndexSet>
</ExamineLuceneIndexSets>

它应该将连字符视为单词的一部分。尝试安装Inspect inspector包并查看索引中存储的内容:


您还可以在“检查”中写出由搜索代码生成的原始Lucene查询,以查看连字符是否被转义或修改。

实际上它将单词按“-”拆分。问题不在索引或设置中。尝试使用UmbracoHelper类和方法TypedSearch(关键字,false,“YourSearcher”),注意useWildCards设置为“false”。有关详细信息,请参见此处的方法搜索: