SharePoint 2010 と FAST Search Server を既定の検索サービス アプリケーションとしてテスト環境をインストールしました。いくつかのテスト コンテンツから開始し、std を使用していくつかの検索を実行しました。SharePoint GUI - これまでのところすべて問題ありません。
ここで、Microsoft.Office.Server.Search.Query.FullTextSqlQuery クラスを使用して、より複雑なクエリを実行したいと考えています。検索で返された ResultTableCollection オブジェクトにアクセスしようとすると、例外が発生します。
これは、実行しようとしている PowerShell スクリプトです。
$site = New-Object Microsoft.SharePoint.SPSite "http://moss"
$kq = New-Object Microsoft.Office.Server.Search.Query.FullTextSqlQuery $site
$kq.ResultTypes = [Microsoft.Office.Server.Search.Query.ResultType]::RelevantResults
$kq.RowLimit = 5
$kq.QueryText = "SELECT Title, Url"
$resultTableCollection = $kq.Execute()
$relResultTable = $resultTableCollection.Item([Microsoft.Office.Server.Search.Query.ResultType]::RelevantResults)
そして、これは例外です (上記のコードの最後の行によってスローされます):指定されたキーが辞書に存在しませんでした。
System.Collections.Generic.KeyNotFoundException で System.ThrowHelper.ThrowKeyNotFoundException() で
System.Collections.Generic.Dictionary`2.get_Item(TKey キー) で
Microsoft.Office.Server.Search.Query.ResultTableCollection.get_Item(ResultType requestedType)で
std を使用して検索を実行すると、まったく同じスクリプトが完全に機能します。SharePoint 検索サービス アプリケーション。ここで、クエリ結果のセキュリティ トリミングが問題の原因である可能性があると述べた関連記事を 1 つ見つけました。ただし、私の FAST サービス アプリケーションのサービス アカウントには AD に対する十分なアクセス許可があるため、これが私の環境にどのように関連するかわかりません。
助言がありますか?