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程序,打开网站,搜索,它就会重新生成一份新的了。
这样,也就起效果了.