SharePoint Search Duplicate Records, 重复搜索结果
最近在帮用户做Search优化的时候遇到了一个问题,用户按照一定条件搜索文档,但是有10多条数据怎么也搜索不出来,后来无意中发现在“Search Core Results”的"Result Query Options”下面发现有一个叫做"Remove Duplicate Results"的选项,默认是打勾的,抱着试试的心态取消掉这个打勾后再查找,数据果然就出来了。但是带来的后果是检索结果数量大幅度增加了,于是很好奇这个"Remove Duplicate Results"到底怎么work的。
原来在SSP的搜索数据库里每个文件都有一个64位的hash数据保存在表MSSDuplicateHashes着用来判断这个文件是否和另外一个文件类似。这个64为的hash code完全基于文件的内容生成,跟文件的属性(例如,文件名、类型、作者、创建修改日期等)无关。
由于搜索结果对用户很重要,即便内容非常类似也需要在结果里面检索出来,我们提了以下几个方案:
- 不要选择"Remove Duplicate Results",但是在检索结果里面通过XSLT过滤掉DispForm这样的内容,缺点是返回结果多了会有性能的考虑;
- 选择"Remove Duplicate Results",但是可以在Advanced Search里面按照field来查询。
参考:
http://blogs.technet.com/b/jpradeep/archive/2010/09/29/moss-2007-duplicate-search-results.aspx