3

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()。私が渡している値はHitHighlightedSummaryfromsearchResultsです。「耳」を検索した場合の結果の例は次のとおりです。

<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()他の値で呼び出す必要がありますか? ドキュメントは特に役に立ちません。

4

1 に答える 1

7

私は通常、ヒットの強調表示された要約マークアップを手動で HTML に変換します。概要には、次の 2 つのマーカーの組み合わせが表示されます。

  • <c0> </c0> (ハイライト)
  • <ddd/> (省略記号)

マークアップの手動変換は、次の文字列置換と同じくらい簡単です。

string hitHighilghtedSummary;
// ...

hitHighlightedSummary = hitHighlightedSummary.Replace("c0", "strong").Replace("<ddd/>", "&#8230;");
于 2013-01-22T13:44:05.647 に答える