2010-12-02 34 views
2

我正在嘗試開發用於FAST搜索的自定義SharePoint 2010 Web部件。我使用Microsoft.Office.Server.Search.Query.KeywordQuery是這樣的:在FAST搜索SharePoint 2010中使用KeywordQuery以編程方式爲HitHighlightedSummary生成HTML

var FASTquery = new KeywordQuery(proxy) 
{ 
    ResultsProvider = SearchProvider.FASTSearch, 
    QueryText = queryText, 
    ResultTypes = ResultType.RelevantResults | ResultType.RefinementResults 
}; 
FASTquery.SelectProperties.AddRange(
    new string[] { "Title", /* ..., */ "HitHighlightedSummary" }); 
ResultTableCollection searchResults = FASTquery.Execute(); 

我去綁定searchResults[ResultType.RelevantResults]Repeater控制。我試圖通過調用FASTquery.HighlightStringValue()來獲得「hit hit highlight summary」。我傳遞的值是searchResultsHitHighlightedSummary。什麼這方面的一個例子爲「耳朵」搜索時,看起來像一個結果是:

<ddd/>FALSE); GetDlgItem(IDC_<c0>EAR</c0>_PAIN_STATIC)-&gt;EnableWindow<ddd/>FALSE); GetDlgIte(IDC_<c0>EAR</c0>_PAIN_ABSENT_RADIO<ddd/>FALSE); GetDlgItem(IDC_<c0>EAR</c0>_PAIN_MILD_RADIO<ddd/> 

然而,當這樣的字符串叫,FASTquery.HighlightStringValue()拋出一個System.ServiceModel.FaultException消息「值沒有內預期範圍「。

將此摘錄轉換爲HTML的正確方法是什麼?或者我應該使用其他值調用HighlightStringValue()?文檔不是特別有用。

+0

請分享您調用FASTquery.HighlightStringValue()的代碼 – 2010-12-18 08:26:28

回答

5

我通常執行手動將點擊高亮顯示的彙總標記轉換爲HTML。你會發現的兩個標誌組合的摘要:

  • <C0> </C0 >(高亮)
  • < DDD/>(省略號)

手動改造標記可以像以下字符串替換一樣簡單:

string hitHighilghtedSummary; 
// ... 

hitHighlightedSummary = hitHighlightedSummary.Replace("c0", "strong").Replace("<ddd/>", "&#8230;"); 
相關問題