Я пытаюсь разработать настраиваемую веб-часть SharePoint 2010 для поиска FAST. Я использую 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
. Пример того, как это выглядит для результата при поиске «уха»:
<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()
с другим значением? Документация не особо полезна.