javascript - 使用 SPServices 查询大型列表并避免 ListView 阈值...功能

标签 javascript jquery sharepoint

所以我有一个列表,其中包含数万个项目,我需要在使用 SPServices 时执行查询。阈值设置为 8,000,所以我对此有疑问。

到目前为止,我已经尝试通过将项目放入文件夹和索引列来优化列表,我将在查询中使用它们。

看起来让它工作的唯一真正技巧是通过正确索引列:但是即使列被索引我仍然有问题:

如果我索引列“Keyword1”和“Keyword2”,如果我在查询中只使用其中一个字段,我可以很好地查询列表,但是只要我将它们都包含在我的 Where 子句中,并使用 Or谓词,我得到阈值错误。

这里的最后几句话突出了问题http://msdn.microsoft.com/en-us/library/ff798465.aspx “在这种情况下,您可以通过为标题字段编制索引来避免该问题。这将使 SharePoint 能够确定索引中按标题排序的前 100 个项目,而无需扫描数据库中的所有 10,000 个列表项目。适用的相同概念排序操作也适用于列表查询中的 where 子句和连接谓词。谨慎使用列索引可以缓解许多大型列表性能问题,并帮助您避免查询限制。”

如何以可以执行更复杂查询的方式对列进行索引,例如,

<Query><Where><Or><Eq><FieldRef Name='Keyword1' /><Value Type='Text'>TEST1</Value></Eq><Eq><FieldRef Name='Keyword2' /><Value Type='Text'>TEST2</Value></Eq></Or></Where></Query>

我尝试了很多选择。我认为有前途的方法是通过在查询中指定 ViewName 或 FolderName 来查询各个文件夹,但这似乎并没有绕过阈值错误..

有任何提示或替代方案吗?

最佳答案

您是否尝试过将列表阈值增加到更高的值?

解决方法是“通过将 SPList.EnableThrottling 属性设置为 false 来覆盖单个列表的 ListView 阈值。

  private static void DisbaleListThrottling()
        {
           using (SPSite spSite = new SPSite("http://YourSiteNameHere.com/TeamSite/"))
            {
                using (SPWeb spWeb = spSite.OpenWeb())
                {
                    SPList spList = spWeb.Lists["MyList1"];
                    spList.EnableThrottling = false;
                    spList.Update();
                }
           }
        }

你也可以使用 powershell:-

$web = Get-SPWeb http://whateverWeb

$list = $web.Lists[“List Title”]

$list.enablethrottling = $false

$lst.update()

关于javascript - 使用 SPServices 查询大型列表并避免 ListView 阈值...功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16021588/

相关文章:

javascript - .each() > $(this).find().eq().html() 为空

javascript - 搜索数组并制作找到和未找到单词的编号列表,Javascript

jquery - 使用 Jquery 修改 gcal 嵌入 CSS?

jquery - 在小屏幕上显示完整的导航栏

JavaScript 变量似乎被视为函数

sharepoint - (SPFieldLookupValue) Lookup 类型的 splistitem 抛出未设置对象实例的对象引用异常

javascript - For 循环迭代同时发生而不是延迟

javascript - 使用 bootstrap 和 jQuery 加载 XML

jQuery 对话框 + iframe 在 IE9 中给出此错误 : SCRIPT5009: 'Array' is undefined

css - Sharepoint 2010 自定义文本布局