Umbraco中更换IndexSet中的NodeType后,搜索页面没有做出对应更改的效果

在项目开发中,使用ExternalSearcher,有一个ExamineIndex.config文件中存放ExternalIndexSet

开始时是这样的

  <!-- Default Indexset for external searches, this indexes all fields on all types of nodes-->
  <IndexSet SetName="ExternalIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/{machinename}/External/">
    <IncludeNodeTypes>
     </IncludeNodeTypes>
  </IndexSet>

这里,由于IncludeNodeTypes中没有任何内容,所有在网站的搜索页面上,搜索不出任何内容来。

现在,我在里面增加Include的node,更改后如下

  <IndexSet SetName="ExternalIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/{machinename}/External/">
    <IncludeNodeTypes>
      <add Name="caseStudy" />
      <add Name="newsPage" />
      <add Name="eventPage" />
      <add Name="contactUsPage" />
      <add Name="contactUsMapPage" />
      <add Name="contactUsTalkPage" />
      <add Name="industryPage" />
      <add Name="product" />
      </IncludeNodeTypes>
  </IndexSet>

按道理,这个时候,在网站的搜索页面上应该搜索出结果来,但是尝试了很多次,依然还是搜索不出任何内容来。

解决: 这个应该是缓存的问题,或者说是存储在~/App_Data/TEMP...中的临时文件的问题,应该文件是存在这里的,你在ExamineIndex.config中更改了,但是~/App_Data/TEMP中的文件没有能够同步更新

解决方法是,进入Umbraco的back office,进入Developer,在右边面板中找到第二个选项卡Examine Management, 找到你更改了的Index---ExternalIndexer, 点击打开后,点击"Rebuild Index". 如下图

 

 

 这样,这个问题就解决了

 

但是,在做项目中又遇到问题了,因为我们的项目web server (存放Umbraco web程序)和Auth server (存放Umbraco back office)是分开的, 在web程序中的back office是屏蔽了的,无法访问的.

这样,我更改了web程序中的config文件(/Config/ExamineIndex),但是无法进入它的back office 去Rebuild index,怎么办呢

还有一种方法,因为从Config/ExamineIndex文件中,可以看到Index文件是存放在~/App_Data/TEMP/ExamineIndexes/{machinename}/External/,显然,它是临时文件,里面有个Index文件夹,

把里面的内容全部删除,重现进入web程序,打开网站,搜索,它就会重新生成一份新的了。

这样,也就起效果了.

 

posted on 2016-11-24 11:44  新西兰程序员  阅读(169)  评论(0编辑  收藏  举报