joh*_*ohn 5 sharepoint-2013 sharepoint-rest-api
这似乎是一个冷漠的问题,我无法在任何地方(包括此处)找到答案,因此我将再试一次,看看是否有人有解决方案。我有一个 SharePoint 2013 实例,我使用 REST API 进行内容搜索并返回到我的 React 前端进行显示。这很好用。但是,当我只需要在整个站点中搜索特定文档列表而不仅仅是在目录或特定列表中搜索时,我现在遇到了问题。我可以使用 /_api/search/query?queryText="" 进行内容搜索,但我想构建此 API 端点的查询文本以仅搜索我提供的列表中的文档。
例如,如果我要查找三个文件:
我只想要这些文档和相应的数据(比如我使用搜索 api 获得的 RedirectEmbedURL 等),而不是 /_api/web/lists/getByTitle 方法。
有没有办法格式化查询字符串以仅返回特定文件?
谢谢。
要检索列表,您需要知道站点路径和库名称。
您还需要操作员使用过滤器
检索列表中的所有文件: https:////_api/Web/Lists/GetByTitle('')/Items?$expand=File
例子:
https://domain-example.com/sites/site1/site2/etc/_api/Web/Lists/GetByTitle('listtitle')/Items?$expand=File
Run Code Online (Sandbox Code Playgroud)
以下是过滤器的一些示例:
要按名称过滤,您需要展开“FieldValuesAsText”并按属性“FileLeafRef”过滤, 示例如下:
https://[site]/web/Lists/GetByTitle('[library_name]')/Items?$filter=substringof('[TEXT_TO_SEARCH]',Title) or substringof('[TEXT_TO_SEARCH]',FileLeafRef)&$expand=File,FieldValuesAsText
Run Code Online (Sandbox Code Playgroud)
我还按标题进行过滤,因为我不知道用户是否需要标题或带有扩展名的名称。
过滤器开头:
https://domain-example.com/sites/site1/site2/etc/_api/Web/Lists/GetByTitle('listtitle')/Items?$expand=File&$filter=startswith(Title,'Foo')
Run Code Online (Sandbox Code Playgroud)
过滤器“包含”(substringof)
https://domain-example.com/sites/site1/site2/etc/_api/Web/Lists/GetByTitle('listtitle')/Items?$expand=File&$filter=substringof('T15', Title)
Run Code Online (Sandbox Code Playgroud)
过滤器“使用相关键搜索(本例中为 ex1)”:(substringof)
https://domain-example.com/sites/site1/site2/etc/_api/Web/lists/GetByTitle('listtitle')/Items?$expand=FieldValuesAsText&$filter=substringof('BES10GHC10BB001', ex1)
Run Code Online (Sandbox Code Playgroud)
谢谢阅读!
| 归档时间: |
|
| 查看次数: |
8139 次 |
| 最近记录: |