2010-12-02 59 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;"); 
相关问题