设定:
我在SharePoint网站上有两个列表,A和B.列表A有一个列'b',它是对列表B的ID字段的查找。我在A中有500k +记录,在B中有大约6k记录。 / p>
什么有效:
我能够使用SharePoint Web服务对列表A中的项执行查询,甚至可以根据列'b'的特定“查找”值过滤查询。例如,我可以查询A列中的项目,其中列b匹配1234(...< Value Type =“Lookup”> 1234< / Value> ...),依此类推。
什么行不通:
该查询不适用于特定日期之前的项目,即使我的查询不涉及任何方式的日期 - 只有查阅列。对两年以上的数据的任何查询都可以正常工作,任何比这更旧的数据都会失败。如果我从SharePoint网页查看项目它们看起来没问题,并且从B中的子记录到A中的父记录的所有链接都可以正常工作 - 查找列显示完好。
问题:
SharePoint中是否存在某种维护任务可能会导致某些基础数据损坏,从而阻止基于查找ID的查询停止工作,如系统还原等?换句话说,查找列数据在Web浏览器的表面上显示正确。但是,SharePoint是否使用GUID或其他可能不同步或过时的不可见数据来表示此值?
感谢。
答案 0 :(得分:1)
也许你正在达到另一个极限;查询中检索的最大项目数?
答案 1 :(得分:0)
尝试通过向FieldRef元素添加LookupId =“TRUE”属性来查询ID。 http://abstractspaces.wordpress.com/2008/05/05/caml-query-lookup-field-by-id-not-by-value/
答案 2 :(得分:0)
问题似乎与相关列已编入索引的事实有关。当我删除索引时,一切都开始工作了。当我重新应用索引时,一切都继续工作。我把这个问题归咎于腐败索引。