我正在努力开发一个定制的SharePoint 2010网页部分,用于快速搜索。我使用的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()来使“点击突出显示的摘要”出现。我传递的值是来自searchResults的searchResults。在搜索"ear“时,搜索结果的示例如下:
<ddd/>FALSE ); GetDlgItem(IDC_<c0>EAR</c0>_PAIN_STATIC)->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()?这些文档并不特别有用。
发布于 2013-01-22 13:44:05
我通常会手动将突出显示的hit摘要标记转换为HTML。您将在摘要中找到两个标记的组合:
标记的手动转换可以与以下字符串替换一样简单:
string hitHighilghtedSummary;
// ...
hitHighlightedSummary = hitHighlightedSummary.Replace("c0", "strong").Replace("<ddd/>", "…");https://stackoverflow.com/questions/4336516
复制相似问题