在sharepoint 2010中查找所有重复文档

时间:2011-05-19 10:17:19

标签: sharepoint sharepoint-2010 document-management

当我们对sharepoint实例执行一些搜索时,我们会在搜索结果中看到几个文件的“查看重复项”链接。

有没有办法报告所有这些重复项?

我已经看到这里有这个SQL可以根据他们的md5哈希值找到重复项:http://social.technet.microsoft.com/forums/en-US/sharepointsearch/thread/8a8b25d9-a3ac-45df-86de-2a3a7838a534我在这里更正了SQL for SharePoint 2010的兼容性:

-- Step1 : get all files with short names, md5 signatures, and size
SELECT  md5 ,
        RIGHT(DisplayURL, CHARINDEX('/', REVERSE(DisplayURL)) - 1) AS ShortFileName ,
        DisplayURL AS Url ,
        llVal / 1024 AS FileSizeKb
INTO    #listingFilesMd5Size
FROM    SearchServiceApplication_CrawlStore.dbo.MSSCrawlURL y
        INNER JOIN SearchServiceApplication_PropertyStore.dbo.MSSDocProps dp ON ( y.DocID = dp.DocID )
WHERE   dp.pid = 58 -- File size
        AND llVal > 1024 * 10 -- 10 Kb minimum in size
        AND md5 <> 0
        AND CHARINDEX('/', REVERSE(DisplayURL)) > 1

-- Step 2: Filter duplicated items

SELECT  COUNT(*) AS NbDuplicates ,
        md5 ,
        ShortFileName ,
        FileSizeKb
INTO    #duplicates
FROM    #listingFilesMd5Size
GROUP BY md5 ,
        ShortFileName ,
        FileSizeKb
HAVING  COUNT(*) > 1
ORDER BY COUNT(*) DESC

DROP TABLE #listingFilesMd5Size

-- Step3 : show the report with search URLs

SELECT  *,
        NbDuplicates * FileSizeKb AS TotalSpaceKb ,
        'http://srv-moss/SearchCenter/Pages/results.aspx?k=' + ShortFileName AS SearchUrl
FROM    #duplicates
--ORDER BY NbDuplicates * FileSizeKb DESC

DROP TABLE #duplicates

但是这只匹配完全重复,而我对SharePoint认为根据搜索结果中的“查看重复项”链接重复的内容感兴趣。

我已经看到有托管属性“DuplicateHash”,但这没有在任何地方记录,我找不到通过对象模型访问它的方法。

由于

2 个答案:

答案 0 :(得分:0)

您不应直接查询数据库,否则可能会使自己处于不受支持的状态。

关于副本:“搜索副本”与哈希无关。这是由搜索引擎索引比较文档向量(主要是术语和术语数)来处理的。

你可能会尝试找到一个FQL(如果使用Fast,否则是一个Search QL)查询,它会给你结果,但我不确定这是否可行。

答案 1 :(得分:0)