Найти все дубликаты документов в sharepoint 2010 - PullRequest
1 голос
/ 19 мая 2011

Когда мы выполняем некоторые поиски в нашем экземпляре sharepoint, мы видим ссылку «Просмотр дубликатов» в результатах поиска для нескольких файлов.

Есть ли способ сообщить обо всех этих дубликатах?

Я видел, что здесь есть этот SQL для поиска дубликатов на основе их хеша md5: http://social.technet.microsoft.com/forums/en-US/sharepointsearch/thread/8a8b25d9-a3ac-45df-86de-2a3a7838a534, и я исправил совместимость SQL для 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 голосов
/ 17 февраля 2014
0 голосов
/ 20 мая 2011

Вы не должны запрашивать базу данных напрямую, вы можете поставить себя в неподдерживаемое состояние.

О дубликате: «поиск дубликатов» не имеет ничего общего с хэшем.Это обрабатывается индексом поисковой системы, сравнивающим вектор документа (в основном термины и количество терминов).

Вы можете попытаться найти запрос FQL (при использовании Fast, иначе Search QL), который даст вам результат, но я не уверен, что это возможно.

...