3

我正在使用带有全文搜索和智能博客的 umbraco 7.4.1。目前面临一个问题。

我无法从博客正文中获取搜索结果,或者任何页面只能从节点名称中获取搜索结果。

我的配置如下

检查索引.config

    <?xml version="1.0"?>
<!-- 
Umbraco examine is an extensible indexer and search engine.
This configuration file can be extended to create your own index sets.
Index/Search providers can be defined in the UmbracoSettings.config

More information and documentation can be found on CodePlex: http://umbracoexamine.codeplex.com
-->
<ExamineLuceneIndexSets>
  <!-- The internal index set used by Umbraco back-office - DO NOT REMOVE -->
  <IndexSet SetName="InternalIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/{machinename}/Internal/" />
  <!-- The internal index set used by Umbraco back-office for indexing members - DO NOT REMOVE -->
  <IndexSet SetName="InternalMemberIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/{machinename}/InternalMember/">
    <IndexAttributeFields>
      <add Name="id" />
      <add Name="nodeName" />
      <add Name="updateDate" />
      <add Name="writerName" />
      <add Name="loginName" />
      <add Name="email" />
      <add Name="nodeTypeAlias" />
    </IndexAttributeFields>
  </IndexSet>
  <!-- Default Indexset for external searches, this indexes all fields on all types of nodes-->
  <IndexSet SetName="ExternalIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/{machinename}/External/" />
  <IndexSet SetName="FullTextIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/FullText/">
    <IndexAttributeFields>
      <add Name="id" />
      <add Name="nodeName" />
      <add Name="nodeTypeAlias" />
    </IndexAttributeFields>
    <IndexUserFields>
      <add Name="smartBlogBody" />
      <add Name="smartBlogSummary" />
      <add Name="smartBlogTitle" />
      <add Name="test" />
    </IndexUserFields>
    <IncludeNodeTypes />
    <ExcludeNodeTypes />
  </IndexSet>
</ExamineLuceneIndexSets>

检查设置.config

<?xml version="1.0"?>
<!-- 
Umbraco examine is an extensible indexer and search engine.
This configuration file can be extended to add your own search/index providers.
Index sets can be defined in the ExamineIndex.config if you're using the standard provider model.

More information and documentation can be found on CodePlex: http://umbracoexamine.codeplex.com
-->
<Examine>
  <ExamineIndexProviders>
    <providers>
      <add name="InternalIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine" supportUnpublished="true" 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" />
      <!-- default external indexer, which excludes protected and unpublished pages-->
      <add name="ExternalIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine" />
      <add name="FullTextIndexer" type="Governor.Umbraco.FullTextSearch.Providers.FullTextContentIndexer, Governor.Umbraco.FullTextSearch" runAsync="true" supportUnpublished="false" supportProtected="false" interval="10" analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net" enableDefaultEventHandler="true" indexSet="FullTextIndexSet" />

    </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.Standard.StandardAnalyzer, Lucene.Net" enableLeadingWildcard="true" />
      <add name="FullTextSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine" analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net" indexSet="FullTextIndexSet" />
    </providers>
  </ExamineSearchProviders>
</Examine>

全文搜索.config

<?xml version="1.0" encoding="utf-8" ?>
<FullTextSearch>
    <!-- Enable Full Text Indexing/Search -->
    <Enabled>false</Enabled>
    <!-- Indexing Options-->
    <!-- 
        This setting controls when pages are actually rendered to HTML and stored/indexed

        This defaults to false. Rendering will be performed at indexing time. 

        Set this to true to render nodes to HTML on umbraco publishing events and store in a 
        database cache for indexing, rather than attempt to read the nodes at indexing 
        time(which can be less reliable).
        The advantage of rendering at indexing time is that publishing will be quicker, 
        and you won't have to republish the entire site before the index is created 
        properly.
        Possible values:
            true - Render HTML at publishing time
                Note: Indexing must be set to run async in ExamineSettings.config if you set this to true

            false - Render HTML at indexing time (default)

        Note that if you're overriding renderers from your own code 
        this affects whether or not your renderer can use the umbraco NodeFactory API
    -->
    <PublishEventRendering>false</PublishEventRendering>

    <!--
        This controls which renderer is used to render nodes to HTML
            Program - Renders nodes using a modified version of umbraco's 
                      RenderTemplate functionality. 
                      Only works if PublishEventRendering is set to true
            HTTP - Render nodes using HttpWebRequests (default)
    -->
    <DefaultRenderer>HTTP</DefaultRenderer>
    <!-- 
        Needed for HTTP Rendering, determines 
        URL of the default.aspx page on your host. I recommend you use
        127.0.0.1 and set the host header below to your domain to avoid 
        problems with name resolution, firewalls, etc. 
    -->
    <HttpUrl>http://127.0.0.1:61434/default.aspx</HttpUrl>;
    <!-- Domain name of your site e.g. www.yoursite.com -->
    <HttpHost></HttpHost>
    <!-- Indexing request timout in seconds -->
    <HttpTimeout>120</HttpTimeout>
    <!-- The name of the Search Provider set up in ExamineSettings.config-->
    <SearchProvider>FullTextSearcher</SearchProvider>
    <!-- The name of the Index Provider set up in ExamineSettings.config-->
    <IndexProvider>FullTextIndexer</IndexProvider>
    <!--
        Full text indexing will be disabled for these node types.
        Note that full text indexing is not run for nodes without
        a template anyway. 
        To disable all indexing for a given node type use ExcludeNodeTypes
        in ExamineIndex.config
    -->
    <NoFullTextNodeTypes>
        <add name="searchPage" />
    </NoFullTextNodeTypes>

    <!-- 
        Setting any of the properties under here to true for a given
        Node will disable All indexing on that page.
    -->
    <DisableSearchPropertyNames>
        <add name="umbracoSearchHide" />
    </DisableSearchPropertyNames>
    <!--
        This string is passed to every page index<hed 
        by the indexer in the query string, or as a cookie
        depending on the rendering method selected.
        e.g. http://yoursite.com/page.aspx?FullTextActive=1
        The intention of this is for you to use the supplied
        XSLT helper function fulltextsearch.search:IsIndexingActive
        which returns true if this parameter is specified in 
        the query string or by cookie.
    -->
    <SearchActiveStringName>FullTextActive</SearchActiveStringName>

    <!-- Cutomise HTML Tag Stripper here -->
    <TagsToRemove>
        <add name="script" />
        <add name="head" />
    </TagsToRemove>
    <IdsToRemove>
        <add name="mainNavigation" />
    </IdsToRemove>

    <!-- Override default IIS timeout on publishing requests, value in seconds -->
    <ScriptTimeout>1200</ScriptTimeout>


    <!-- Name of the full text index in lucene, don't change unless you need to -->
    <LuceneFTField>FullTextSearch</LuceneFTField>

    <!-- 
        The query generated for Lucene boosts the relevance of the title properties, 
        if specified. This controls by how much.
    -->
    <SearchTitleBoost>10.0</SearchTitleBoost>
    <!--
        By default the Search XSLT Helper returns all fields from the
        index for users to modify. Set to false to return only summary fields. 
    -->
    <ReturnAllFieldsInXSLT>true</ReturnAllFieldsInXSLT>
</FullTextSearch>

以及内容结构

内容结构

你知道如何解决这个问题吗?

带着敬意,

4

1 回答 1

0

您可以检查您的索引是否已实际生成?您可以在以下位置找到:

ROOT > App_Data > Temp > 检查索引

您应该看到一个带有您的索引集名称的文件夹?

如果此文件夹为空,则您的配置中可能有错字。

如果失败,您可以删除您的 ExamineIndexes 文件夹并重新启动站点并让 Umbraco 重新生成它们。

让我知道事情的后续。

问候

克雷格

于 2016-10-12T09:46:19.140 回答