我应该如何在Sitecore中存储项目的一些自定义属性?

时间:2015-10-05 12:10:21

标签: sitecore sitecore8

我正在将数千种产品从XML Feed导入Sitecore。因此,我为产品创建了一个模板,其中包含大约20个字段,如IdentificationNamePrice等。 而且,在XML中,产品可以有一些自定义属性,如下所示:

<custom-attribute name="AC_Information_1_Name" dt:dt="string" xml:lang="nl-NL">PDF</custom-attribute>

首先,我创建了一个新模板,该模板将保存这些字段,并将每个自定义属性的Sitecore项存储在一个文件夹中,并将它们链接到产品。但这导致导入真的很慢,因为包含自定义属性项的文件夹有超过10万个,每次它必须保存另一个,它会查看所有现有的,以检查它是否不重复。 所以我认为我需要改变我如何保存这些的整个结构。 另一个想法是以某种方式将它们直接保存在产品中,但名称值列表是不够的,因为还需要保存DataTypeLanguage

您知道任何可以保存所有值的数据类型吗?或者其他一些想法?

2 个答案:

答案 0 :(得分:0)

一些建议:

  1. 通过对索引进行查找来提高性能。
  2. 使用存储桶查看自定义属性,这会自动为您的商品创建隐藏树结构,以优化Sitecore性能。
  3. 考虑将其作为自定义字段类型存储在产品上(可能将XML存储为原始值),就像呈现细节的工作原理一样。您可以在此基础上构建UI以显示您想要的数据。但这意味着重复数据,但导入效率会很高。

答案 1 :(得分:0)

建议:

1 - 使用(名称,值,语言,类型)为自定义属性创建模板,并将xml的自定义属性添加为产品的子项。您不应该进行查找,因为属性应仅适用于产品,并且将它们放在常规文件夹位置时不会添加任何值。所以你的树可能看起来像

产品1&gt;属性1 |属性2 | .... |属性n
<产品2>属性1 | ...... ...
产品N

2 - 为xml的属性创建自定义字段类型,以便您的字段应该有4个输入框作为一个字段。例如,您的产品模板将如下所示

鉴定
[输入框]

价格
[输入框]

自定义属性
名称|价值|输入|郎
[输入框] | [输入框] | [输入框] | [输入框]

这种方法需要更多时间,您可以查看sdn文档以创建自定义字段类型。

谢谢你 函数naveed。