SharePoint 2010中的爬网数据库(Crawl Database)随着时间会不断增长。以我这个系统为例内容数据库(WSS_Content)只有2G多,但爬网数据库竟然达到172G。
网上查了一下,也有不少人遇到此问题(但好像没有爬网数据库和内容数据库大小的比值这么离谱的),提出的解决办法基本只有一个,就是收缩数据库。但收缩数据库只是暂时地收回了未使用的空闲空间,并没有减少数据库内容的大小。而且这种方法有两个问题:1)如果采用自动收缩的话,会对性能产生很大影响。(微软也不推荐此选项。)2)如果是手工收缩的话,过一段时间此问题会再次出现,但每次手工来做很明显是繁琐而费神的。
本人期望的解决方式是能够清除掉爬网数据库中过期或无用的数据(比如基于某个已删除的列表产生的爬网数据),如果实在不行就清除掉所有现有数据,让搜索引擎重新生成爬网数据。可能是因为检索的还不够充分,对于这两种思路网上都没有找到实现方法。于是自己从搜索服务的配置中摸索可能的解决办法,其中有一项“索引重置”的功能,以为会清空现有的爬网数据,但发现爬网数据库大小没有任何变化。
再进一步摸索后,发现通过如下方法可以清空已有的爬网数据,具体操作步骤如下:
1. 打开 管理中心 > 管理服务器上的服务 > SharePoint Server 搜索 页面。(通过“管理服务应用程序”也可以进入此页面,但步骤较多。)
2. 点击 Search Service Application后面的“修改拓扑结果”,在进入的页面中依次执行:
1)新建:“爬网数据库”。
2)在“爬网组件”中将新建的爬网数据库设为“关联爬网数据库”。(关联爬网数据库缺省为安装时创建的那个现在很大的数据库。)
3)删除原爬网数据库。
注:谨慎起见,本人在进行上述每一个操作后都先点击“应用拓扑修改”,然后再执行后继步骤。为避免出错,建议大家也这样来操作。
完成上述步骤后效果非常好:
1. 原有的超大爬网数据库文件被删除。
2. 新生成的爬网数据库只有400多M。
3. 搜索功能正常,可搜索出跟之前同样多的结果。