0

为了从列表中获取事件项目,我发出了一个 CAML 查询,它只返回少量项目(大约 17 个)。当我将列表视图阈值设置为 10000 时,一切正常,但是当我将 LVT 设置为 5000 时,我收到“超出管理员设置的列表视图阈值”错误。我的 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?任何重组查询的建议都很好,但我确实需要查看所有重复事件的出现(不仅仅是主项目)。

4

1 回答 1

2

如果有人感兴趣,我已经设法使用 Query 并找出如何避免达到阈值。我所做的只是更改查询元素的顺序,以便首先列出我的索引字段,最后列出 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>
于 2012-12-05T14:51:35.660 回答