描述
最近一个站点,需要开启搜索功能,然后创建内容源,开始爬网,发现列表里只有一部分被索引,很多项目没有被索引,甚是奇怪,如下图(其实列表里有80几条项目)。
首先爬网账号是系统账号、服务器管理员,所以觉得账号权限不存在问题;毕竟SharePoint的搜索爬网,就是用当前账号的权限去爬网,展示的时候,再按照当前账号去过滤的。
然后想到的就是爬网规则,自己也没有设置过,试着把这个列表按照规则include进来,然后reindex后执行完全爬网,没用。
然后把列表reindex、站点reindex、加托管属性、整个爬网服务reindex,都没有效果。
然后把站点备份还原到另一个uat环境,爬网,依然同样的问题。
经过一系列折腾,不经意间发现列表项目的状态是pending,然后试着approved一下,发现可以被index了(好吧,我觉得系统账号、服务器场管理员也会索引到draft的项目,是我一厢情愿了,其实SharePoint不是这样设计的)。
然后,发现列表设置的版本设置里面,有这么个选项,“Draft Item Security”,勾选第一个就可以了,但是所有人都可以看到draft的项目,至此,问题已经有眉目了。有两个选择,让所有看draft,然后爬网都会被收录;要么就把所有的项目都approved了,爬网也会收录。
我很想吐槽一下,其实我勾选的是第三个,然后爬网不能index,其实爬网账号真的有权限干这个,就是不index项目,这就是设计上的问题了。
不死心的继续谷歌(昨天已经谷歌一天了),发现这样一篇描述,“Draft items are not crawled in SharePoint”(https://support.microsoft.com/en-us/kb/2304855),好吧,是我自己out了。
Oh,My LadyGaga,问题反正是解决了。SharePoint又让自己明白了一次,在SharePoint的汪洋大海里,自己是多么的渺小啊。好吧,下次再见,希望不再是问题的描述,能有点新东西。╮(╯▽╰)╭。