我有一个大型文档库(目前约 6000 个文档),我需要根据自定义字段值(库上的自定义列)查找文档。
有没有办法在不遍历所有 6000 个文档的情况下取回该文档?
我知道迭代必须在某个时候发生,但我希望它发生在 SharePoint 服务器端,而不是将它们全部传输到客户端,然后挑选文档。
谢谢
我有一个大型文档库(目前约 6000 个文档),我需要根据自定义字段值(库上的自定义列)查找文档。
有没有办法在不遍历所有 6000 个文档的情况下取回该文档?
我知道迭代必须在某个时候发生,但我希望它发生在 SharePoint 服务器端,而不是将它们全部传输到客户端,然后挑选文档。
谢谢
您可以查询Sharepoint。您发出 CAML 查询,该查询在服务器上执行并仅带回与您指定的条件匹配的项目。您指定要搜索的自定义列的名称,并指定要查找的值。为了提高效率,您可以只要求返回几个字段(例如文档 url)。因此,您无需遍历列表中的文档即可找到该项目。
您可以在此处找到一些讨论:http: //msdn.microsoft.com/en-us/library/ee956524.aspx,您还可以找到如何从 javascript 或 silvelight 进行操作的示例。
示例 CAML:
CamlQuery camlQuery = new CamlQuery();
camlQuery.ViewXml =
@"<View>
<Query>
<Where>
<Eq>
<FieldRef Name='FileLeafRef'/>
<Value Type='Text'>Test.docx</Value>
</Eq>
</Where>
<RowLimit>1</RowLimit>
</Query>
</View>";