0

Umbraco 7 アプリケーションで Examine search を使用しています。どういうわけか、「タグ名」などのハイフンを含む単語を検索しても結果が得られません。

ExamineSearchProvider と ExamineIndexProvider の両方に WhitespaceAnalyzer を使用するように Examine をセットアップしました。一時フォルダーのキャッシュも削除しましたが、まだ結果はありません。データベースで値を確認したところ、「XXX-xxx」というクエリと同じ形式になっています。また、クエリをエスケープしようとしましたが、結果は変わりません。

私が見ていないものはここにありますか?

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

ハイフンを単語の一部として扱う必要があります。Examinspector パッケージをインストールして、インデックスに格納されている内容を確認してください: 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 に答える