搜索结果转换中的多个索引不适用于Kentico
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搜索结果转换中的多个索引不适用于Kentico相关的知识,希望对你有一定的参考价值。
我有两种不同的索引,至少在我的本地索引的搜索预览中都能正常工作。我将它们添加到索引区域中的智能搜索部分,一个是页面爬虫,第二个是在媒体库中搜索的自定义索引。问题是结果只与爬网程序的结果匹配,并且没有显示任何自定义索引。我认为问题是我的smartSearchResults转换,因为每次我尝试从自定义索引添加一个字段时,我都会收到一个错误,表示该值不存在。我的问题是如何使用两个索引来检索同一Web部件中的所有结果?
这就是看起来如何转变
<div class="result">
<!-- Search result title -->
<div>
<a href='<%# SearchResultUrl() %>'>
<%#SearchHighlight(htmlHelper.HTMLEncode(CMS.Base.Web.UI.ControlsHelper.RemoveDynamicControls(DataHelper.GetNotEmpty(Eval("Title"), "/"))), "<span style='font-weight:bold;'>", "</span>")%>
</a>
</div>
<p class="content">
<%#
IfCompare(GetSearchValue("UseCustomContent"), true,
SearchHighlight(LimitLength(HTMLHelper.StripTags(Eval<string>("Content")), 280), "<strong>", "</strong>"),
SearchHighlight(LimitLength(HTMLHelper.StripTags(GetSearchValue("CustomContent").ToString()), 280), "<strong>", "</strong>")
)
%>
</p><!-- content -->
<%-- MEDIA LIBRARY CONTENT--%>
<div>
<%#GetSearchValue("FileName") %>
</div>
<div class="file">
<i class="<%# GetFileIconClass(Eval<string>("documentExtensions")) %>"></i>
</div><!-- file -->
</div>
</div>
但我没有收到任何结果的消息
答案
从搜索索引中获取特定字段值时,您无法使用简单的Eval("ColumnName")
。你必须使用另一种方法,GetSearchValue("ColumnName")
。 Eval()
方法主要使用以下列Title, Content, Image
。如果您已经在使用GetSearchValue()
方法,那么您需要更新您的问题以反映您正在使用或已经尝试过的内容。
另一答案
在尝试使用它之前,您必须检查该值是否存在。你可以使用IfEmpty。一个例子:
<%# IfEmpty(GetSearchValue("Email"),"","<span class='label'>Email</span>")%>
<%# IfEmpty(GetSearchValue("Email"),"",GetSearchValue("Email"))%>
以上是关于搜索结果转换中的多个索引不适用于Kentico的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 kentico 为包含 Web 部件的页面内容创建索引?
创建UI以管理Kentico中自定义模块中的多个类之间的关系