Kentico 智能搜索结果有意外的内容输出
Kentico smart search result has unexpected content output
我有两个智能搜索索引作为实验。一种是'Pages',另一种是'Pager Crawler'.
我的页面有一个部分使用转发器,这是一种自定义页面类型。它呈现如下:
<div class="fullWrap pageBanner">
<div class="container pageHeading">
<div class="row">
<div class="col-xs-12 col-md-6">
<div class="pageHeading--headingCopy">
<h1>This is the Home Page. Buy some RESPs.</h1>
<h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus volutpat posuere posuere.</h2>
<a href="/Learn-About-RESPs.aspx" class="btn btn-chevron">Learn More</a>
</div>
</div>
<div class="col-xs-12 col-md-6">
<div class="pageHeading--heroImage">
<img src="/kffCorporate/media/KFFCorporate/headerImages/0-0_KFF_Home_Image-555px-gradient.jpg?ext=.jpg" class="img-responsive" alt="This is the Home Page. Buy some RESPs.">
</div>
</div>
</div>
</div>
</div>
没什么特别的,只是一个基本的 bootstrap 流体容器,有两列。
我的搜索结果,不要从 'pageHeading--headingCopy' 中获取任何副本,但我确实得到了图像 url。
这是搜索转换的输出。
Registered Educational Savings Plans ~/kffCorporate/media/KFFCorporate/headerImages/home-benefits.jpg CTA Heading Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis luctus vehi...
这是转换的相关部分。
<%-- Search result content --%>
<div class="content">
<%#SearchHighlight(HTMLHelper.HTMLEncode(TextHelper.LimitLength(HttpUtility.HtmlDecode(HTMLHelper.StripTags(CMS.ExtendedControls.ControlsHelper.RemoveDynamicControls(GetSearchedContent(DataHelper.GetNotEmpty(Eval("Content"), ""))), false, " ")), 200, "...")), "<span class='searchTerm'>", "</span>")%>
</div>
我认为转换会提取页面上呈现内容的前 200 个字符,但它缺少 H1 和 H2,还有其他项目。如果我在H1或H2中搜索副本,结果返回页面,但搜索结果中显示的内容是关闭的。
有什么想法吗?
对于自定义页面类型,您可以定义页面类型中的哪些字段与指定的搜索字段对齐。
转到您的自定义页面类型,然后转到 "Search Fields" 选项卡。从这里,您可以选择为各种搜索字段显示哪些字段。在您的情况下,您需要将 "Content" 字段分配给相应的自定义字段。
每个搜索结果项都有这组映射字段,"Title, Content, Image, Date" 您可以将其设置为与自定义页面类型中的任何字段相对应,以使您的搜索结果更加一致且更易于管理。默认情况下,"Content" 字段与 "Document Content" 对齐,后者组合了 page/page 类型上的所有可编辑区域。但是,如果 H1 和 H2 存储为单独的字段,则默认情况下不会选取它们。
我有两个智能搜索索引作为实验。一种是'Pages',另一种是'Pager Crawler'.
我的页面有一个部分使用转发器,这是一种自定义页面类型。它呈现如下:
<div class="fullWrap pageBanner">
<div class="container pageHeading">
<div class="row">
<div class="col-xs-12 col-md-6">
<div class="pageHeading--headingCopy">
<h1>This is the Home Page. Buy some RESPs.</h1>
<h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus volutpat posuere posuere.</h2>
<a href="/Learn-About-RESPs.aspx" class="btn btn-chevron">Learn More</a>
</div>
</div>
<div class="col-xs-12 col-md-6">
<div class="pageHeading--heroImage">
<img src="/kffCorporate/media/KFFCorporate/headerImages/0-0_KFF_Home_Image-555px-gradient.jpg?ext=.jpg" class="img-responsive" alt="This is the Home Page. Buy some RESPs.">
</div>
</div>
</div>
</div>
</div>
没什么特别的,只是一个基本的 bootstrap 流体容器,有两列。
我的搜索结果,不要从 'pageHeading--headingCopy' 中获取任何副本,但我确实得到了图像 url。
这是搜索转换的输出。
Registered Educational Savings Plans ~/kffCorporate/media/KFFCorporate/headerImages/home-benefits.jpg CTA Heading Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis luctus vehi...
这是转换的相关部分。
<%-- Search result content --%>
<div class="content">
<%#SearchHighlight(HTMLHelper.HTMLEncode(TextHelper.LimitLength(HttpUtility.HtmlDecode(HTMLHelper.StripTags(CMS.ExtendedControls.ControlsHelper.RemoveDynamicControls(GetSearchedContent(DataHelper.GetNotEmpty(Eval("Content"), ""))), false, " ")), 200, "...")), "<span class='searchTerm'>", "</span>")%>
</div>
我认为转换会提取页面上呈现内容的前 200 个字符,但它缺少 H1 和 H2,还有其他项目。如果我在H1或H2中搜索副本,结果返回页面,但搜索结果中显示的内容是关闭的。
有什么想法吗?
对于自定义页面类型,您可以定义页面类型中的哪些字段与指定的搜索字段对齐。
转到您的自定义页面类型,然后转到 "Search Fields" 选项卡。从这里,您可以选择为各种搜索字段显示哪些字段。在您的情况下,您需要将 "Content" 字段分配给相应的自定义字段。
每个搜索结果项都有这组映射字段,"Title, Content, Image, Date" 您可以将其设置为与自定义页面类型中的任何字段相对应,以使您的搜索结果更加一致且更易于管理。默认情况下,"Content" 字段与 "Document Content" 对齐,后者组合了 page/page 类型上的所有可编辑区域。但是,如果 H1 和 H2 存储为单独的字段,则默认情况下不会选取它们。