Как полностью удалить триммер безопасности поиска (ISecurityTrimmer2)
-
10-12-2019 - |
Вопрос
Я создал очень простую реализацию ISecurityTrimmer2 в SharePoint 2010.Зарегистрировал, все заработало как положено.
Я удалил его, используя следующий PowerShell:
$searchApp = Get-SPEnterpriseSearchServiceApplication "Search Service Application"
$trimmer = $searchApp | Get-SPEnterpriseSearchSecurityTrimmer
$trimmer | Remove-SPEnterpriseSearchSecurityTrimmer -SearchApplication "Search Service Application"
Powershell предупреждает меня, что игнорирует дополнительный параметр -SearchApplication, но без него команда не работает.Я проверил, что Get-SPEnterpriseSecurityTrimmer не возвращает результатов.
Теперь я не получаю результатов поиска со следующей ошибкой в ULS от процессора запросов:
Error occurred when executing pluggable security trimmer with Id 1 System.InvalidOperationException: Could not find Pluggable Security Trimmer with Id '1'.
at Microsoft.Office.Server.Search.Administration.Security.PluggableSecurityTrimmerManager.Instantiate(Int32 idRequested)
at Microsoft.Office.Server.Search.Administration.Security.PluggableSecurityTrimmerManager.GetPluggableSecurityTrimmer(Int32 id)
at Microsoft.Office.Server.Search.Query.PluggableSecurityTrimmer.Trim(UInt32[] docIds, Boolean[] displayDoc, UInt32 oldScannedCount, UInt32 logicalStartPosition, UInt32 desiredResultCount)
я сделал iisreset
и все равно получаю ту же ошибку.Очевидно, что его там нет, но почему процессор запросов все еще его ищет и как я могу полностью его удалить?
Решение
Видимо, это исправляет новое полное сканирование.
Я нашел объяснение в комментариях. в этой статье о почтовых триммерах 2013 г. Свейнар Расмуссен
Причиной первоначального полного ползания является то, что объекты контента (документы) должны быть связаны с зарегистрированным триммером.Он поместит целый ряд идентификатор на тех, кто соответствует правилу ползания.После того, как контент «помечен» с помощью пост-триммера, постриммер вызывает.И любые последующие изменения в логике триммера не потребуют каких-либо ползаний после этого, если вы не перерегистрируете триммеры.
По моему опыту, если вы хотите сделать что-то, предполагающее изменение строгого имени триммера безопасности (например,изменив версию сборки), вы можете удалить его и повторно добавить с тем же идентификатором, не требуя полного сканирования.Только в 2013 году для этого также потребуется перезапустить службу Search Host Controller.