问题表现:
SharePoint 2013 爬网后,搜索一个文档,虽然搜到了,但是显示有点问题,如图:
原因分析:
造成该问题的原因是,该文档除了本身有一个名称外,在文档metadata的title属性也有一个标题,常见于模板文档。查看metadata标题的方法是。右键文档---属性----Detail
而sharepoint在爬网的时候,会优先爬取metadata中的这个title.
解决方法:
第一步: 安装sharepoint sp1补丁,然后在管理中心的Search service application中设置search schema中编辑title属性,然后将MetadataExtractorTitle放在最下面,如下图所示,这样做的目的是在爬网的时候不适用metadata 中的title. 然后点击保存,启动全爬。
你以为事情就这样结束了吗?
哥满心欢喜以为事情就这样解决了,但是在做完上面这些哥发现搜索结果还是那样,并没有改变。日了什么了。经过细致排查,发现在文档库中有两个field是关于文档名的,一个是name,另一个是title.而在你上传文档的时候,sharepoint会自动将matadate中的title赋值给文档库中的title 列。而讲过上述修改,搜索结果只是显示了文档库中的title属性。
第二步:是文档库中的name和Title保持一致。方法有很多:方法一:可以用eventhandler(亲测好用),但是会加重服务器的负担。
方法二:用designer编写一个contenttype的可重用的工作流,然后让工作流去同步标题。但是如果文档库需要check out,工作流会出问题,不推荐
方法三:写一个exe,然后定时去跑一下。优点不占用服务器资源,缺点是定时的,不是随时的。
方法四:修改SharePoint item display template. 哥尝试修改但是没有达到理想的效果,遂放弃,你得修改所有文件格式的display template,较繁琐。哪位有识之士可 以试一试,并且劳烦把结果告诉我。
总结:SharePoint问题真是防不胜防啊。代码改变世界