0

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

我已将 Examine 设置为对 ExamineSearchProvider 和 ExamineIndexProvider 都使用 WhitespaceAnalyzer。我还删除了临时文件夹中的缓存,但仍然没有结果。我检查了数据库中的值,它们的格式与查询“XXX-xxx”的格式相同。我也试图逃避查询,但这不会改变结果。

这里有什么我没看到的吗?

在检查设置.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>
4

2 回答 2

0

它应该将连字符视为单词的一部分。尝试安装检查检查器包并查看索引中存储的内容:http: //our.umbraco.org/projects/backoffice-extensions/examine-inspector

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

于 2014-11-13T10:59:42.697 回答
0

实际上它用'-'分割单词。问题不在索引或设置中。尝试使用 UmbracoHelper 类和方法 TypedSearch(keywords, false, "YourSearcher"),注意 useWildCards 设置为 "false"。有关更多信息,请参见此处的方法搜索:https ://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/Umbraco.Web/PublishedContentExtensions.cs

于 2016-11-18T09:04:11.340 回答