Sitecore powershell 100项限制

时间:2016-03-30 15:20:13

标签: powershell sitecore

我要求使用同名的优化图像替换Sitecore媒体库中的加载(2000+)图像。我需要保留原始GUID,以便所有图像仍然链接。

所以我基本上需要替换图像blob数据和大小数据。我已经编写了一个PowerShell脚本来执行此操作,但我发现它始终会处理100个项目。我看不出任何原因,可能只是我的脚本是垃圾,因为我之前没有使用过PowerShell。

$CurrentImages = Get-Item  -Path master: -Query '/sitecore/media library/Images/Products//*[@@TemplateName="Jpeg"]';


$NewImages = Get-Item  -Path master: -Query '/sitecore/media library/NewImages//*[@@TemplateName="Jpeg"]';

Write-Host $NewImages.Count;


$CurrentImages|foreach{ $Current = $_;  $NewImages|foreach{ $New = $_; if($New.DisplayName -eq $Current.DisplayName){ Write-Host $Current.DisplayName; $Current.Blob = $New.Blob; $Current.Size = $New.Size; $New | Remove-Item}}};

我使用sitecore powershell扩展,如果这也有帮助

1 个答案:

答案 0 :(得分:11)

CMS在Sitecore.config中实际上对查询机制施加了限制。您可以找到以下行,并将其更改为上限:

<setting name="Query.MaxItems" value="100" />

但我建议,如果搜索量较大,您可能需要使用利用Sitecore内容搜索基础结构的Find-Item cmdlet。

您可以找到更多不同的策略来查找the Gist I've put together some time ago with performance analysis中的内容。

如果是Find-Item,您可能希望将搜索结果通过管道传输到Initialize-Item,以将搜索结果项目转换为完整的网站核心项目。

编辑:在Slack schannel上学习(感谢Kamruz Jaman!) Sitecore 8.1在App_Config\Include\Sitecore.ExperienceExplorer.config中的此限制进一步增加到260,但在您的情况下,第一个限制仍然是这样。

<setting name="Query.MaxItems">
    <patch:attribute name="value">260</patch:attribute>
</setting>