我正在尝试为FAST搜索开发自定义的SharePoint 2010 Web部件。我正在使用Microsoft.Office.Server.Search.Query.KeywordQuery这样的东西: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()来显示“突出显示的摘要”。我传递的值是HitHighlightedSummary中的searchResults。搜索“ ear”时结果的外观示例如下:<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()?该文档不是特别有用。 最佳答案 我通常将突出显示的摘要标记手动转换为HTML。您将在摘要中找到两个标记的组合: (突出显示)(省略号)标记的手动转换可以像以下字符串替换一样简单:string hitHighilghtedSummary;// ...hitHighlightedSummary = hitHighlightedSummary.Replace("c0", "strong").Replace("<ddd/>", "&#8230;");
08-26 18:40