解决SharePoint文档库文件在搜索结果页面显示的标题和文档的标题不一致问题(search result)

时间:2022-01-30 02:44:34

问题表现:

SharePoint 2013 爬网后,搜索一个文档,虽然搜到了,但是显示有点问题,如图:

解决SharePoint文档库文件在搜索结果页面显示的标题和文档的标题不一致问题(search result)

原因分析:

造成该问题的原因是,该文档除了本身有一个名称外,在文档metadata的title属性也有一个标题,常见于模板文档。查看metadata标题的方法是。右键文档---属性----Detail

解决SharePoint文档库文件在搜索结果页面显示的标题和文档的标题不一致问题(search result)

而sharepoint在爬网的时候,会优先爬取metadata中的这个title.

解决方法:

第一步: 安装sharepoint sp1补丁,然后在管理中心的Search service application中设置search schema中编辑title属性,然后将MetadataExtractorTitle放在最下面,如下图所示,这样做的目的是在爬网的时候不适用metadata 中的title. 然后点击保存,启动全爬。

解决SharePoint文档库文件在搜索结果页面显示的标题和文档的标题不一致问题(search result)

你以为事情就这样结束了吗?

哥满心欢喜以为事情就这样解决了,但是在做完上面这些哥发现搜索结果还是那样,并没有改变。日了什么了。经过细致排查,发现在文档库中有两个field是关于文档名的,一个是name,另一个是title.而在你上传文档的时候,sharepoint会自动将matadate中的title赋值给文档库中的title 列。而讲过上述修改,搜索结果只是显示了文档库中的title属性。

第二步:是文档库中的name和Title保持一致。方法有很多:方法一:可以用eventhandler(亲测好用),但是会加重服务器的负担。

    方法二:用designer编写一个contenttype的可重用的工作流,然后让工作流去同步标题。但是如果文档库需要check out,工作流会出问题,不推荐

    方法三:写一个exe,然后定时去跑一下。优点不占用服务器资源,缺点是定时的,不是随时的。

    方法四:修改SharePoint item display template. 哥尝试修改但是没有达到理想的效果,遂放弃,你得修改所有文件格式的display template,较繁琐。哪位有识之士可            以试一试,并且劳烦把结果告诉我。

总结:SharePoint问题真是防不胜防啊。代码改变世界