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

时间:2023-01-15 03:56:13

在项目开发中,使用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". 如下图

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

这样,这个问题就解决了

但是,在做项目中又遇到问题了,因为我们的项目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程序,打开网站,搜索,它就会重新生成一份新的了。

这样,也就起效果了.