(我的最终目标是让我的搜索结果页面与Google非常相似 - 方面,类别,同义词,拼写更正和突出显示 - 但我正在努力突出显示)
我按照How to Highlight Search Terms Using ContentSearch in Sitecore With Solr上的说明获取结果,但我不确定如何处理结果。代码示例如下所示:
using (var context = index.CreateSearchContext(SearchSecurityOptions.DisableSecurityCheck))
{
var result = context.GetExtendedQueryable<SearchResultItem>().Where(it => it["content_t"] == "panda").GetResultsWithHighlights("content_t", "title_t");
var highlights = result.Highlights;
}
当我在SOLR中运行命令时,我看到响应中包含一个<result>
元素,其中包含多个<doc>
元素,但突出显示的文本是单独的,并且位于<lst name="highlighting">
元素中。在C#方面似乎也是如此 - result
同时包含result.Results
和result.Highlights
。
result.Highlights
仅包含突出显示的片段,并且不包含不匹配的字段。搜索结果页面应列出title_t
(突出显示搜索字符串,如果存在),并在标题下方列出content_t
片段(突出显示搜索字符串(如果存在))。如果content_t
没有相关的片段,那么我想从Sitecore项中提取Description
字段。如何将result.Results
与result.Highlights
“绑定”Sitecore项目以实现显示?