SharePoint 2013 客户化(Customize) 搜索结果(Search result)-显示模版(Dispaly template)&搜索结果类型(Search Result Type)

原创 2012年12月31日 15:03:36

本文将描述如何使用显示模版(Dispaly template)&搜索结果类型(Search Result Type) 来客户化(Customize) SharePoint 2013 搜索结果(Search result)。

显示模版(Dispaly template)是SharePoint 2013的新功能,目的是使用HTML模板来客户化(Customize) SharePoint 2013 搜索结果(Search result),在2007和2010中使用XSLT来客户化搜索结果,需要开发者精通XSLT, 但是问题是 精通XSLT的技术人员并不多,而精通HTML+JavaScript的技术人员很多。基于这个原因微软推出了显示模版(Dispaly template)&搜索结果类型(Search Result Type)。

 

下面介绍详细步骤 :

1. 参考http://blog.csdn.net/farawayplace613/article/details/8426640 创建content type, 配置search navigation

2. 新建显示模板(Dispaly Template)

     a. 打开站点集根站点的站点设置(Site Settings)

     b. 点击 Web Designer Galleries分类下的 Master pages

     c. 进入文件夹 Display Templates-> Search

     d. 下载默认的Item显示模板,并将下载的模板重命名为 Order_Item.html

   

      e. 编辑 Order_Item.html          

          
            <title>Item</title> ===> <title>Order Item</title>

             <div id="Item"> ===> <div id="Item_Order">

            <mso:ManagedPropertyMapping msdt:dt="string">'Title':'Title','Path':'Path','Description':'Description','EditorOWSUSER':'EditorOWSUSER','LastModifiedTime':'LastModifiedTime','CollapsingStatus':'CollapsingStatus','DocId':'DocId','HitHighlightedSummary':'HitHighlightedSummary','HitHighlightedProperties':'HitHighlightedProperties','FileExtension':'FileExtension','ViewsLifeTime':'ViewsLifeTime','ParentLink':'ParentLink','FileType':'FileType','IsContainer':'IsContainer','SecondaryFileExtension':'SecondaryFileExtension','DisplayAuthor':'DisplayAuthor'</mso:ManagedPropertyMapping>

                ===>  

<mso:ManagedPropertyMapping msdt:dt="string">'Title':'Title','Path':'Path','Description':'Description','OrderNoOWSTEXT':'OrderNoOWSTEXT','AmountOWSCURR':'AmountOWSCURR','EditorOWSUSER':'EditorOWSUSER','LastModifiedTime':'LastModifiedTime','CollapsingStatus':'CollapsingStatus','DocId':'DocId','HitHighlightedSummary':'HitHighlightedSummary','HitHighlightedProperties':'HitHighlightedProperties','FileExtension':'FileExtension','ViewsLifeTime':'ViewsLifeTime','ParentLink':'ParentLink','FileType':'FileType','IsContainer':'IsContainer','SecondaryFileExtension':'SecondaryFileExtension','DisplayAuthor':'DisplayAuthor'</mso:ManagedPropertyMapping>

 上面这个改动主要是在 mso:ManagedPropertyMapping 中添加了  'OrderNoOWSTEXT':'OrderNoOWSTEXT','AmountOWSCURR':'AmountOWSCURR'
 

  <div id="_#= $htmlEncode(itemId) =#_" name="Item" data-displaytemplate="DefaultItem" class="ms-srch-item" onmouseover="_#= ctx.currentItem_ShowHoverPanelCallback =#_" onmouseout="_#= ctx.currentItem_HideHoverPanelCallback =#_">
				_#=ctx.RenderBody(ctx)=#_
                <br/>
                
                <div id="_#= $htmlEncode(hoverId) =#_" class="ms-srch-hover-outerContainer"></div>
            </div>

更改为 

<div id="_#= $htmlEncode(itemId) =#_" name="Item" data-displaytemplate="OrderItem" class="ms-srch-item" onmouseover="_#= ctx.currentItem_ShowHoverPanelCallback =#_" onmouseout="_#= ctx.currentItem_HideHoverPanelCallback =#_">
				_#=ctx.RenderBody(ctx)=#_
                <br/>
                <a href="_#=ctx.CurrentItem.Path=#_" class="ReportText">_#= ctx.CurrentItem.Title =#_</a>
                <br/>
                "Amount:" _#= ctx.CurrentItem.AmountOWSCURR =#_
                <br/>
                "Customer:" _#= ctx.CurrentItem.Title =#_
                <br/>
                 "OrderNo:" _#= ctx.CurrentItem.OrderNoOWSTEXT =#_
                <br/>
                <div id="_#= $htmlEncode(hoverId) =#_" class="ms-srch-hover-outerContainer"></div>
            </div>

注意这里HTML代码,大家就可以八仙过海各显神通了。

解释以下_#= ctx.CurrentItem.AmountOWSCURR =#_,这是在Dispaly template 中使用Search Sechema 中的 Managed Property的方法,当创建Site column 时,SharePoint 2013会自动为Site Column创建相应的 Managed Property

 

要确定这些Managed Property是否生效可以在Search Box 中输入Managed Property:value,如

  f. 上传 Order_Item.html至 Display Templates-> Search,Target Control Type(Search)选择 SearchResults

 

3. 创建搜索结果类型Order Result Type

    a. 打开Site settings page(可以是站点集 _layouts/15/manageresulttypes.aspx?level=sitecol 也可以是普通站点/_layouts/15/start.aspx#/_layouts/15/manageresulttypes.aspx?level=site)

    b. 点击新建结果类型(Result Type)

   

   c. 输入Name, 选择 OrderResultSource(如何创建Result Source请参考 http://blog.csdn.net/farawayplace613/article/details/8426640), 选择dispaly template并点击 Save

   

 

  4. 覆盖原 “SharePoint List Item” 结果类型,并将content type 为order的item排除在外

        a. 打开站点集 Site settings page( _layouts/15/manageresulttypes.aspx?level=sitecol)

        b. 在Site Collection Administration分类下,点击 Search Result Type

        c. Copy "SharePoint List Item”

     

 

      d. 将content type 为非order的item排除在外

   

 

SharePoint 2013 Search result refinement 如何显示count

SharePoint 2013 Search result refinement可以对查询结果进行分类,以及该分类有多少条记录: 但是SharePoint 2013默认是隐藏count的。 下...

SharePoint Search之(七)Search result- 结果源

在使用搜索引擎的时候,很多情况下,用户希望限定一下搜索范围,以便更加容易找到想要的结果,比如是图片,还是视频,还是任何内容。在SharePoint 2013的search里,也支持类似的功能, 那么如...
  • SPFarm
  • SPFarm
  • 2014年11月18日 21:46
  • 1698

SharePoint 2013 中使用代码获取 search reports(Top_Queries, Abandoned_Queries,No_Result_Queries )

本文讲述如何在SharePoint 2013 中使用代码获取 search reports(Top_Queries, Abandoned_Queries,No_Result_Queries )。...

Struts2 result type(结果类型)

在struts2框架中,当action处理完之后,就应该向用户返回结果信息,该任务被分为两部分:结果类型和结果本身。 结果类型提供了返回给用户信息类型的实现细节。结果类型通常在Struts2中就...

自定义结果类型(result的type属性)

需求:自定义一个结果类型,用于自动生成验证码,生成验证需要借助一个第三方工具validatecode.jar,当然也可以自己实现分析:要想实现一个自定义的结果类型,那么,我们可以参考struts2官方...

SharePoint Search之(四)Promoted Results—让搜索结果置顶

当使用搜索引擎的时候,用户希望匹配的结果能够在第一条显示。那么在SharePoint中如何为关键字设置最佳匹配结果,并且置顶显示呢?...
  • SPFarm
  • SPFarm
  • 2014年11月11日 23:12
  • 1645

SharePoint 2013 客户端模型(Client Object Model) 调用搜索(Query Search)

SharePoint 2013 客户端模型(Client Object Model) 调用搜索(Query Search): SharePoint 2013 提供客户端调用Search 模型的方...

SharePoint Server 2016 RC 版本输入Query之后无法返回Search Result的解决方案

博客地址:http://blog.csdn.net/shelleyliu0415   部署完SharePoint Server 2016 RC的环境之后,发现Search Service针...

面对不同种类的处理结果——<result type="">

Struts2中有很多不同种类的处理结果,有action也有视图文件。比较常见的情景就是我们要一个action链接到另一个action应该怎么做呢?我在这里就做了一个小例子 JSP文件内容 ...

Struts2 框架提供的结果(result)的name与type属性

Struts2 框架提供的结果类型,即 result 的 type 属性值 -------------------------------------------------------------...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SharePoint 2013 客户化(Customize) 搜索结果(Search result)-显示模版(Dispaly template)&搜索结果类型(Search Result Type)
举报原因:
原因补充:

(最多只允许输入30个字)