2011-01-20 49 views
0

我在C#中編寫了一個用戶定義的函數來使用Sharepoint 2010搜索服務,並使其在SQL Server 2008中可用。只是搜索工作正常,但我希望能夠限制結果會出現在哪個目錄我的基本QUERYTEXT是這樣的:Sharepoint 2010搜索結果不一致,當通過SQL使用C#時

SELECT top 10000 Path, HitHighlightedSummary FROM Scope() WHERE FREETEXT(DEFAULTPROPERTIES,'query') 

如果我展開自由文本到查詢路徑:目錄我得到176個結果,而如果將其輸入Sharepoint搜索的默認前端,我得到1600.任何想法爲什麼不?

在另一個示例中,我將自由文本更改爲查詢標題:docTitle,我從我的UDF獲得2700個點擊量,但只有170個來自Sharepoint前端。 任何想法表示讚賞。

回答

0

用戶帳戶是否相同? SharePoint執行安全篩選。它也可能會根據您如何設置搜索服務來裁剪結果。

+0

這是相同的用戶帳戶;只有一個。正常的結果相匹配,只有當我開始添加修飾符。我不認爲這是安全修整,因爲當我指定標題時,結果會增加更多結果(不正確)。 – user582160 2011-01-21 02:21:33

0

機會是UI搜索正在爲查詢添加更多/不同的修飾符,而不是您的代碼,或者UI後期搜索處理扭曲了搜索結果的真實數量。我相信,如果您將搜索相關的ULS類別提升到最高級別,您可以看到正在執行的實際查詢。當您通過用戶界面執行查詢時,您可能想要查看SharePoint代表您正在執行的操作。

0

什麼結束了,我的工作是FreeText的元數據,除了查詢:

SELECT top 10000 Path, HitHighlightedSummary FROM Scope() 
WHERE FREETEXT(DEFAULTPROPERTIES,'query') AND FREETEXT(Path,'"directory"') 
相關問題