検索セキュリティトリマーをきれいに削除する方法(ISecurityTrimMer2)
-
10-12-2019 - |
質問
SharePoint 2010でISecurityTrimmer2の非常に簡単な実装を作成しました。それを登録し、すべてが期待どおりに機能しました。
次の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年の投稿Trimmers Sveinar Rasmussen
最初の最初の理由 クロールは、コンテンツオブジェクト(文書)を関連付ける必要があることです。 登録されたトリマーと。それはそれらに整数IDを置きます クロールルールと一致します。コンテンツが「マークアップ」の場合 Trimmer後、Post-Trimmerが呼び出されます。そしてその後の変更 トリマーロジックには、その後クロールは必要ありません。 あなたがトリマーを再登録していないように。
私の経験では、セキュリティトリマーの強力な名前を変更するような何かをしたい場合(例えば、アセンブリバージョンの変更)、それを削除して、フルクロールを必要とせずに同じIDでそれを再加えることができます。 2013年のみ、これには検索ホストコントローラサービスの再起動も必要です。