2013年3月14日,星期四

Displaying the right data in the Content 搜索 web part in 的SharePoint 2013

本系列文章:

所以让’s say you’正在使用SP2013中的Content 搜索 Web部件,您’它显示正确的项目。 (如果没有,请参阅我的重要文章 使用内容搜索Web部件(并了解搜索)。就本文而言,我’在寻找我的物品’ve创建并标记为“SharePoint”。无论查询如何,您’我很可能会遇到这样的事情:

默认内容搜索Web部件演示
您的客户会对如此美观的东西感到兴奋!顺便说一下,以上搜索是为了“单据 in my 的SharePoint farm tagged with 的SharePoint” - 可能确实不需要显示缩略图 单据,但只是为了好玩,我们’我将讨论这两种选择。在以后的文章中,我’将介绍使用CSWP汇总一些新闻页面(发布页面)–这些确实会从缩略图中受益,但是好消息就在那里’使他们到达那里的工作较少。

无论如何,如果我们分解问题,’d想修复,我们会说:

  • 为每个项目渲染一幅图像,但是找不到一个(因此使用默认图像)
  • 字段可能不正确–当然对于第二项和第三项,从Office文档属性中获取了一个相当无用的值。 这是在没有‘Description’清单项目上的字段(注:这实际上很棒‘fallback’SP2013搜索的功能– Office doc properties get pulled into the property bag of the list item, and indexed by search if no 其他 values take precedence [via Managed Property 地图pings]),但在这种情况下, ’关于谁为我在会议上展示的会议创建原始PowerPoint模板的一些不相关数据:
    Office文档-评论字段 
  • 整体格式(HTML和CSS,尤其是颜色)与我们所需的渲染不匹配

CSWP Web部件属性中的一些设置在这里起作用:

事情 屏幕截图 笔记
控制显示模板 CSWP-选择显示模板 这决定了演示文稿的整体风格– it’s effectively the “outer HTML” that is output.

I’d say 清单 将是最常用的值,但是’s great to see 分页清单 免费。 幻灯片放映 是图像旋转器。
项目显示模板 CSWP-选择显示模板项 这决定了应用于显示的每个项目的样式,即“每个项目的HTML”。稍后,当我们创建一个新的项目显示模板时,我们’将会看到此下拉列表可供选择。
属性映射 CSWP - property 地图pings 这些非常像‘slots’在“内容查询” Web部件中–它们是选定的项目显示模板的功能(在JavaScript中指定)。项目模板使用通用  properties (e.g. ‘Picture URL’, ‘Line 1’ etc.), and you can ‘map’ some specific fields which exist on your list item. The image shows the 默认 地图pings. 这意味着如果您只需要 get a different field displayed in an existing 插槽, you can do this 没有 修改XSL(CQWP)或JavaScript(CSWP)。

If you needed 10 插槽s rather than 5, editing the 项目显示模板’JavaScript对此进行控制。

请注意,可以指定由分号指定的多个值(如图所示)。

 

选择项目显示模板

As you change the selected 项目显示模板 in the dropdown, the 属性映射 section in the CSWP tool pane will change accordingly, allowing the 地图ping for each 插槽. Once configured appropriately (see next section), “图片在左边,右边3行”可以显示3行信息:

内容搜索Web部件-图片3行

鉴于“Two lines”当然,不会给您任何图片,只有两行:

内容搜索Web部件-2行
We’d probably say that “Two lines” works just fine for 单据– 除非您确实碰巧想要缩略图(例如,某些关键政策/程序/ CAD文件/ PDF /其他内容)。虽然默认情况下会在发布页面时使用缩略图,但其他项目的处理对于说明‘Property Mappings’ aspect – first let’s cover the possibilities for working with these 地图pings. 

深入探讨-获得正确的数据

如果你没有’t guessed already, those property 地图pings such as ‘PublishingImage’, ‘Path’, ‘Title’ and ‘Description’ above are 托管属性 在搜索服务应用中。 If you are rolling up content from multiple locations (Content by *Search* remember!), consider that these 地图pings allow you to show results from across your farm/tenant  即使你不’到处都有相同字段的标准化内容类型. 例如,也许‘Description’确实可以来自名为‘Project 描述’ in one place but ‘Task 描述’ for 其他 items.

使用托管属性意味着您可能需要走另一条路才能获得所需的值:

选项1–无需任何工作,CSWP会自动在我想要的位置显示我的数据!

太棒了!您’ll see this for the ‘Title’字段和其他字段(例如发布页面中的汇总图片)。发生这种情况是因为为此‘slot’在所选项目显示模板中,默认的“属性映射”包含一个“托管属性”,该属性指向列表项/内容类型上保存数据的字段。完善。如果不是’如果确实如此,并且您认为应该这样做,请检查是否已填充了某些内容并且已成功对其进行爬网– you won’直到它到达任何地方。

选项2– use an existing Managed Property and site column, but edit the CSWP properties for a particular 插槽 (to point to this Managed Property). You would do this when the CSWP isn’默认情况下不会查看此托管属性  for this 插槽:

It’s是一个很大的旧下拉列表,但是您要做的就是选择所需的现有托管属性:

Content search web part - selecting property 地图ping

另外,您可以 通过在框中键入,以分号分隔的托管属性列表。

选项3-使用新的网站栏,但将其添加到现有的托管属性中:

Rare maybe, but you might want to do this if you want the same 地图ping to be use in different places e.g. multiple CSWP instances, or CSWP and the search results page etc。该过程将是:

  1. 将新列添加到列表/库/内容类型。填充一些内容并执行完全/增量爬网。
    1. 查找一个现有的,有点通用的托管财产,该财产代表您正在使用的东西–这可能像‘Title’ or ‘Description’。编辑托管属性,以使您的字段对应的已爬网属性(例如‘ows_COBDescription’ for a field named ‘COBDescription’)已添加到“已爬网属性”列表中。 
  2. Ensure your Crawled Property is higher in the 地图pings list than 其他s (if using the ‘Include content from 第一个不为空的已爬网属性。’选项。举例说明:
           
    配置托管属性

选项4–使用完全自定义 托管媒体资源和网站列:

如果不存在适当的字段,或者您确实不知道,这可能是最好的方法’不想使用这些设置来污染任何其他CSWP实例和/或搜索结果页面。我使用这种方法在使用时将缩略图添加到文档中“图片在左边,右边3行”。该过程将是:

    1. 将新列添加到列表/库/内容类型。填充一些内容并执行完全/增量爬网。
    2. Create a new Managed Property, and 地图 it to the corresponding Crawled Property for your field (e.g. ‘ows_COBThumbnailUrl’ for a field named ‘COBThumbnailUrl’).
    3. Edit the Content 搜索 web part properties, so that the 属性映射 for the desired 插槽 contain the name of the Managed Property – here I’已添加我的托管媒体资源(‘COBThumbnailUrl管理’) to the ‘Picture URL’ 插槽:

      CSWP - property 地图pings updated 

通常,决定因素将是:

  • 我是否希望此更改在所有地方都生效? (修改现有的托管媒体资源[即向其中添加新的爬行媒体资源]可能意味着 其他 内容搜索Web部件/搜索结果显示此列实例中的数据)
  • 是否存在可以表示此数据的现有字段和/或托管财产?

“带缩略图的CAD文件/文档(在团队网站中)” example

最近,我必须为客户端演示实现CAD文件的缩略图–出现在CSWP结果和搜索悬停面板中(I’我将在第二天谈论自定义搜索悬停面板)。缩略图场’不会自动生成,但将来可能会生成。在它’s core, there’s附加列,其中包含指向缩略图的超链接(例如,在Site Assets库中)。

我选择了 选项3 在这种情况下– since I don’t need to ensure I’m仅将作用域限定为一个CSWP实例或任何实例。

这是我为使缩略图和说明传递到CSWP而进行的特定更改:

  • 在我的内容类型中添加了两列,以包含缩略图URL和描述
  • 为每个项目填充这些字段(对于缩略图,如上所述,图像本身位于本地站点资产库中)
  • 项目缩略图:
    • 我创建了一个网站栏(‘COBThumbnailUrl’), and 地图ped this to the ‘PictureThumbnailURL’ Managed Property
  • 项目说明(显示在‘Line 2’ value):
    • 在这种情况下,我重新使用了OOTB‘Description’托管媒体资源,但添加了新列‘COBDescription’ and included this in the Crawled Properties 地图ped to that Managed Property
    • (N.B.有一堆名为OOTB的字段‘Description’在团队网站中,但大多数都在‘Hidden’ group and didn’实际上似乎适合重复使用)

缩略图针对该文件后,’在搜索悬停面板(以及CSWP汇总)中显示它相当容易:

自定义的悬停面板,用于CAD文件

“发布带有缩略图的页面” example

如果你的项目’重新汇总发布页面(例如新闻页面),那么事情就稍微简单一些– this is because the 默认 地图pings of, say, “图片在左边,右边3行”工作更好。假设你’正确配置了查询 并且页面上有汇总图片集(例如,现有图片的副本), 然后你’ll可能会得到缩略图,但是默认情况下没有描述:

内容搜索Web部件-默认发布输出

在这种情况下,您可能会注意到我的缩略图不是’高品质。这是因为它们只是使用SP2013发布框架生成的’s的图像再现功能(即页面本身上显示的更大图像的100 x 100版本)–如果我为缩略图生成特殊图像,则结果将是更高的质量(但工作更多)。

We have no item descriptions so far, only titles. However, if we edit the 属性映射 for “Line 2” and “Line 3”,我们可以开始引入其他数据– here I’m选择文章的下划线,并选择列出该项目标记了哪些术语的属性:

Content search web part - editing 地图pings for publishing pages 
..现在我们得到了显示模板显示的那些详细信息:

内容搜索Web部件-增强的发布输出

接下来的考虑 –修改HTML / CSS / JS,以及打包/部署

到目前为止,我们还没有’不要担心更改输出的实际HTML。 我的下一篇文章将针对发布和非发布场景对此进行介绍(过程略有不同)。

工作中还有一些注意事项“developer way”并通过WSP设置这些工件。一世’下次还将讨论这些。

6条评论:

匿名 said...

你好

I'使用带有自定义显示模板的自定义应用程序页面的解决方案部署内容搜索Web部件时遇到了问题。由于某些原因,部署后未应用自定义模板。而是应用默认值。一世'我已经在technet上为此创建了一个线程,但是很遗憾,目前还没有答案。
http://social.technet.microsoft.com/Forums/en-US/sharepointdevelopment/thread/b9591996-2081-4f53-adf5-21da64c60a03
你能帮我吗?

克里斯·奥'Brien说过...

你好

I'我不确定这是否是相同的问题,但是我'在尝试使用功能中的AllUsersWebPart元素将Content 搜索 Web部件添加到页面时,肯定会遇到问题。我认为这可能是SP2013中的错误,并且对此写了一篇博客文章。一世'会在接下来的几天内发布,但简而言之,很遗憾,您必须找到一些解决方法。

干杯,

克里斯。

匿名 said...

你好

感谢您的回复!

I've已找到解决此问题的方法,但我认为并非所有人都会喜欢-我'使用Sharepoint Designer打开带有内容搜索Web部件的页面,复制Web部件定义并将其直接添加到页面布局中。这样看来可行。

匿名 said...

我喜欢这个Web部件,目前正在开发跨站点集合导航解决方案(托管导航很好,但是 '使用此功能,但很难使用查询规则或显示模板定义网站层次结构。有什么建议?

卡伦说过...

克里斯,你好

非常感谢您的博客!如何将图像显示在悬停位置的内容搜索显示模板上?

我可以将其显示在悬停的搜索结果上,但不能显示在内容搜索中。不知道我在想什么!

非常感谢!!

克里斯·奥'Brien说过...

@KarenC,

为此,我对显示模板进行了相当简单的调整。图片由作者单独上传('t自动生成),然后我有一个'img'标签,该标签使用文件的属性来构建要用于的完整路径'src' 在 tribute.

希望有帮助!

COB。