sharepoint - SharePoint 2010展开重复CAML查询超过列表视图阈值

  显示原文与译文双语对照的内容
0 0

试图从列表获取事件项,我发出一个只返回少量项目( 大约 17 )的CAML查询。 当我在 10000处设置列表视图阈值时一切正常,但是当我在 5000设置LVT时,我会得到一个"超出管理员设置的列表视图阈值"错误。 我的CAML查询非常简单:


<Where>
<And>
 <DateRangesOverlap>
 <FieldRef Name="EventDate"/>
 <FieldRef Name="EndDate"/>
 <FieldRef Name="RecurrenceID"/>
 <Value Type="DateTime">
 <Now/>
 </Value>
 </DateRangesOverlap>
 <And>
 <BeginsWith>
 <FieldRef Name="Place"/>
 <Value Type="Text">Boston</Value>
 </BeginsWith>
 <Or>
 <Eq>
 <FieldRef Name="Status"/>
 <Value Type="Text">Status1</Value>
 </Eq>
 <Eq>
 <FieldRef Name="Status"/>
 <Value Type="Text">Status2</Value>
 </Eq>
 </Or>
 </And>
</And>

谁能解释这可能发生的原因? 是因为扩展重现SP实际上运行一个单独的查询,从而导致LVT被超过? 任何重构查询的建议都很好,但是我需要查看所有重复事件( 不只是主项目) 。

时间: 原作者:

0 0

如果有任何人感兴趣,我已经打开了查询,并找出了如何避免这个阈值。 我做的只是更改查询元素的顺序,以便首先列出索引字段,最后列出DateRangesOverlap节点。 以下是有效的结果:


 <Where>
<And>
 <BeginsWith>
 <FieldRef Name="Place"/>
 <Value Type="Text">Boston</Value>
 </BeginsWith>
 <And>
 <Or>
 <Eq>
 <FieldRef Name="Status"/>
 <Value Type="Text">Status1</Value>
 </Eq>
 <Eq>
 <FieldRef Name="Status"/>
 <Value Type="Text">Status2</Value>
 </Eq>
 </Or>
 <DateRangesOverlap>
 <FieldRef Name="EventDate"/>
 <FieldRef Name="EndDate"/>
 <FieldRef Name="RecurrenceID"/>
 <Value Type="DateTime">
 <Now/>
 </Value>
 </DateRangesOverlap>
 </And>
</And>
</Where>

原作者:
...