0

リストからイベント アイテムを取得しようとして、少数のアイテム (約 17) のみを返す CAML クエリを発行します。リスト ビューのしきい値を 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

誰かが興味を持っている場合に備えて、クエリをいじって、しきい値に達するのを避ける方法を見つけることができました. 私がしたことは、インデックス付きフィールドが最初にリストされ、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 に答える