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程序,打开网站,搜索,它就会重新生成一份新的了。
这样,也就起效果了.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律