我正在尝试为SharePoint Online中的文档库设置自定义智能搜索索引。如何选择要编制索引的文档库中的所有文件?
ISharepointListService 有一个GetListItems方法,但ISharePointFileService没有。
ex :( DataSet results = listService.GetListItems(listName);)
我需要遍历每个文档并索引文档库列中的内容和元数据。
有什么想法吗?
答案 0 :(得分:0)
您是否考虑过使用SharePoint客户端对象库(CSOM)?这是一个.NET程序集版本,在Kentico项目中很容易使用。如果要索引文档库项目的元数据,则需要读取每个列表项,就像使用GetListItems方法一样。您还可以使用CSOM库检索列表项。有一个示例,"从SharePoint列表中检索项目",在这里:
但是,您还想索引内容。这意味着需要将每个文件下载到临时位置并提取其内容。要从CSOM列表项获取文件路径,请使用其FileRef属性。下载文件后,需要提取内容。我还没试过这个,但是我要看一下使用SearchTextExtractorManager.ExtractData方法。如果这样做,您将拥有SharePoint列表项中的元数据和ExtractData中的内容。然后,您就可以将文档添加到SmartSearch(Lucene)索引中。
更简单的解决方案是使用联合搜索方法。可以通过调用SharePoint的搜索API来执行搜索,而不是创建自定义SmartSearch索引,结果可以显示在Kentico结果旁边的同一搜索页面上。
https://dev.office.com/sharepoint/docs/general-development/sharepoint-search-rest-api-overview
麦克