5

我有一个大型文档库(目前约 6000 个文档),我需要根据自定义字段值(库上的自定义列)查找文档。

有没有办法在不遍历所有 6000 个文档的情况下取回该文档?

我知道迭代必须在某个时候发生,但我希望它发生在 SharePoint 服务器端,而不是将它们全部传输到客户端,然后挑选文档。

谢谢

4

1 回答 1

3

您可以查询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>";
于 2011-07-04T03:30:44.223 回答