搜索结果转换中的多索引不适用于Kentico

时间:2018-12-05 15:38:53

标签: search indexing 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>

但是我没有收到任何结果消息

2 个答案:

答案 0 :(得分:0)

从搜索索引获取特定字段值时,不能使用简单的Eval("ColumnName")。您必须使用另一种方法GetSearchValue("ColumnName")Eval()方法主要用于以下列Title, Content, Image。如果您已经在使用GetSearchValue()方法,则需要更新您的问题以反映您正在使用或已经尝试过的内容。

答案 1 :(得分:0)

在尝试使用该值之前,您必须检查该值是否存在。您可以为此使用IfEmpty。一个例子:

   <%# IfEmpty(GetSearchValue("Email"),"","<span class='label'>Email</span>")%>  
   <%# IfEmpty(GetSearchValue("Email"),"",GetSearchValue("Email"))%>