17

我正在尝试在 Tridion 2011 SP1 中创建一个自定义部署程序,一旦发布就可以将组件索引到 solr 实例。一切正常,但我在索引组件字段的方式上遇到了一些问题。

我可以通过使用 Component.getCustomMeta() 方法并解析 XML 来访问元数据字段。但是,如果不读取正在输出的文件并解析输出,则似乎无法访问普通字段。这并不完全可行,因为标记可能会发生变化,而且做应该(希望)是一件简单的事情似乎还有很长的路要走。

我对文档进行了拖网搜索,似乎没有任何东西可以获取字段值,所以我在这里不知所措,需要解析输出,还是我在某处遗漏了什么?

4

2 回答 2

12

内容字段不会在交付端如此公开,内容作为“内容”公开也就不足为奇了。

如果您确实需要这些字段,则需要:

  1. 为您的组件演示生成“可解析”输出
  2. 在组件演示文稿发布时对其进行解析。

查看类似DD4T的实现以了解类似的方法。

简而言之 - 你不能这样做,因为 Tridion 不会开箱即用地公开它。唯一的方法是通过模板更改内容输出格式。

于 2012-05-09T13:06:32.747 回答
4

我们已经做了一个替代解决方法来实现类似的要求。实现的一个缺点是额外呈现 XML 中的组件表示和代理中的 xml 存储副本。

这是我们所做的:

  1. 创建了一个动态 CT(内容的 XML 表示)GetComponentAsXML 并映射到所有模式
  2. 所有页面模板都有一个 C# TBB,用于查找我们需要推送到 SOLR 的内容
  3. C# TBB 使用上面的动态 CT GetComponentAsXML 执行 RenderComponentPresentation,这会推送 XML (engine.RenderComponentPresentation(component.Id, componentTemplateURI)
  4. Deployer 现在获取 xml 格式的内容,以及其他类型的组件表示形式(如 ascx、嵌入页面等)

希望这些信息有所帮助。

于 2012-05-09T16:00:24.840 回答