【问题标题】:Programmatically generate HTML for HitHighlightedSummary using KeywordQuery in FAST search for SharePoint 2010在 SharePoint 2010 的 FAST 搜索中使用 KeywordQuery 以编程方式为 HitHighlightedSummary 生成 HTML
【发布时间】:2013-01-22 21:44:05
【问题描述】:

我正在尝试为 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() 来显示“命中突出显示的摘要”。我传递的值是来自searchResultsHitHighlightedSummary。搜索“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()?文档不是特别有用。

【问题讨论】:

  • 请分享您调用 FASTquery.HighlightStringValue() 的代码

标签: sharepoint sharepoint-2010 fastsearch keywordquery


【解决方案1】:

我通常将点击突出显示的摘要标记手动转换为 HTML。您会在摘要中找到两个标记的组合:

  • (突出显示)
  • (省略号)

标记的手动转换可以像以下字符串替换一样简单:

string hitHighilghtedSummary;
// ...

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

【讨论】:

    猜你喜欢
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多