使用 dtSearch Engine DataSource API 索引 SharePoint 网站集





0/5 (0投票)
本文演示如何使用 dtSearch 引擎作为搜索此类数据的解决方案。
企业使用 SharePoint 来存档和存储各种企业文档。大型组织通常拥有多个业务部门。每个业务部门通常会创建一个或多个 SharePoint 网站集来组织其业务文档和相关内容。
快速查找 SharePoint 中关键业务信息的能力是重要的业务差异化因素。然而,跨 SharePoint 文档搜索以提取必要信息会带来挑战,这既是因为数据量可能很大,也因为文件格式种类繁多。本文演示如何使用 dtSearch 引擎作为搜索此类数据的解决方案。
dtSearch 引擎概述
dtSearch 引擎(参见 dtSearch.com)可以跨 TB 级数据进行闪电般的文本搜索。并且它可以处理各种数据格式。支持的数据类型包括当前版本的 MS Office(Word、Excel、PowerPoint、Access、OneNote);其他“Office”套件格式;压缩格式(RAR、ZIP、GZIP、TAR);Exchange、Outlook 和其他流行的电子邮件类型(包括多层嵌套附件);PDF 和 PDF Portfolio;其他基于 Web 的格式(HTML、XML/XSL 等);以及各种数据库(SQL、NoSQL、SharePoint 等)。
无需告知 dtSearch 它正在处理何种文件格式或其他数据类型 – dtSearch 会自行识别。dtSearch 允许开发人员利用超过 25 种全文和元数据搜索选项,包括分面搜索和多种高级数据分类选项,以及显示带有突出显示匹配项的搜索结果。
dtSearch 产品可以通过两种主要方式索引 SharePoint 数据。第一种方式是通过 dtSearch Spider,它内置于 dtSearch 产品系列中,也可通过 dtSearch 引擎 SDK 使用。第二种方法是通过 dtSearch 引擎数据源 API。
dtSearch 引擎数据源 API 为数据库内容集成提供了最大的灵活性。本文的 SharePointDemo 是一个 Visual Studio 项目,它使用 dtSearch 引擎数据源 API 来索引 SharePoint 网站集。
入门
中央管理服务器要求。每个 SharePoint 场都有一台或多台服务器指定为中央管理服务器。此服务器充当 SharePoint 场的正面。本文中的所有主要工作都发生在这台中央管理服务器上。当然,您需要对该服务器拥有管理员权限才能完成大部分工作。
集成包含两类工作:(1) 使用 SharePoint API 抓取 SharePoint 网站并枚举要索引的每个网站中的文档;(2) 实现 dtSearch 引擎的 DataSource 接口,以便将文档传递给 dtSearch 引擎进行索引。
Visual Studio 和 Windows Server (64 位) 安装。验证您拥有适当的管理权限后,请在中央管理服务器上安装最新版本的 Visual Studio 和最新 64 位版本的 Windows Server,包括补丁和操作系统驱动程序。
安装 SharePoint DLL。此项目中的 SharePoint DLL 需要 Windows Server 64 位操作系统。为了简化 SharePoint DLL 的安装,您可以利用 Visual Studio 中的 NuGet 功能。NuGet 可通过 Visual Studio 菜单选项访问。
选择“工具”->“NuGet 包管理器”->“管理解决方案的 NuGet 包”…
选择“浏览”。然后键入“SharePoint”。然后安装 SharePoint DLL。
安装 SharePointDemo。从附在本篇文章 CodeProject.com 上的链接下载包含项目文件的 ZIP 文件。
SharePointDemo 包含两个窗体。AddWebForm.cs 将检索 SharePoint 场中的所有网站集。Form1.cs 是启动窗体,并启动索引过程。
安装 dtSearch 引擎。您还需要安装完整的 dtSearch 引擎 for Win & .NET 包。您可以在 dtSearch.com/contact.html 申请一个功能齐全的 30 天试用版。作为开发人员,您的任务是继承 DataSource API 并使用 `GetNextDoc()` 和 `Rewind()` 方法的重写。更多详情如下。
dtSearch 引擎的默认安装目录是 C:\Program Files (x86)\dtSearch Developer\bin64\。(请注意,bin64 表示 64 位。)本文的 SharePointDemo 已包含指向 dtSearch 引擎默认安装位置的引用。如果您将 dtSearch 引擎安装在不同的目录中,请右键单击 SharePointDemo 的“引用”部分以选择不同的位置。
验证 SharePoint 网站集。此时,您需要验证您是否有一个包含要索引的网站集文档的 SharePoint 场。本文末尾的附录 A 将引导您完成一个或多个网站集的创建,包括添加文档(如果这还不是您 SharePoint 设置的一部分)。请注意,SharePoint 中的一切都是一个由 URL 表示的 Web 资源;SharePoint 不提供物理文件路径。
运行 SharePoint 演示
现在您可以运行项目 SharePointDemo 了。转到“调试”菜单并选择“运行”。
选择网站集。运行后,将显示 *Form1.cs*。您会注意到应用程序默认为索引路径 c:\index。在单击“开始索引”之前,请单击“添加”按钮。执行此操作会检索 AddWebForm.cs。
AddWebForm.cs 包含一个 ListBox 和一个按钮“查找 SharePoint 网站”。此按钮将查找网站集。下面的示例包含一对网站集。
填充 ListBox 的代码包含一个嵌套循环。SharePoint 网站集是 SharePoint Web 服务的子集,因此需要嵌套循环。
在 *AddWebForm.cs* 中选择一个或多个要索引的网站集后,返回 *Form1.cs*。
索引。接下来,在 *Form1.cs* 中选择“开始索引”以启动 dtSearch 引擎索引过程。
数据源接口
示例代码使用 `SharePointDataSource` 类,该类实现了 dtSearch 数据源接口,为 dtSearch 索引器提供文档。
要索引 SharePoint 数据,首先会调用 `SharePointDataSource` 的 `EnumerateFiles` 方法来生成要索引的网站中的文件列表。对于每个文件,`EnumerateFile` 获取一个 URL,`SharePointDataSource` 可以使用该 URL 下载文件。该示例使用文件名和扩展名过滤器来识别要跳过的文档。
一旦索引器启动,它将反复调用 `GetNextDoc()` 来获取要索引的文档。在每次调用时,`GetNextDoc` 将使用其列表中的一个 URL 来获取要索引的文档。对于每个 URL,`SharePointDataSource` 使用 .NET WebClient 对象下载字节并将下载的字节分配给 DocBytes。
byte[] bytes = WebClient.DownloadData(filesToIndex[currFileOffset]); DocBytes = bytes; currFileOffset += 1; // iterate to the next document
结论和后续步骤
SharePointDemo 作为索引起点。本文介绍了一个新的 Visual Studio 项目,它结合了两个独立且强大的 API。通过结合 SharePoint API 和 dtSearch 引擎,示例项目使得索引 SharePoint 网站集中的关键业务数据成为可能。开发人员可以利用 SharePointDemo 作为起点来构建自己的自定义索引解决方案。
搜索选项和附录。索引完成后,开发人员通常会转向 dtSearch 开发者产品来启用基于 Web 的并发索引搜索。dtSearch 开发者产品提供高效的多线程 Internet 或 Intranet 搜索,对并发搜索线程的数量没有限制。有关更多详细信息,请参阅 dtSearch.com/PLF_engine_2.html
(您也可以使用 dtSearch Desktop 搜索使用此示例创建的索引。要在 dtSearch Desktop 中访问索引,请在 dtSearch Desktop 中单击“索引”>“识别索引”。)
附录 A – 设置 SharePoint 2016
由于 SharePoint 中的安全模型可能非常复杂,因此本文假设网站集中的文档允许匿名访问。这样我们可以专注于代码索引的核心方面。要了解有关权限和网站集的更多信息,请参阅此链接:https://support.office.com/en-ie/article/Edit-and-manage-permissions-for-a-SharePoint-list-or-library-02d770f3-59eb-4910-a608-5f84cc297782?ui=en-US&rs=en-IE&ad=IE。
创建网站集
SharePoint 管理员可用的中央管理页面允许他们创建网站集。从中央管理页面,选择“应用程序管理”->“网站集”->“创建网站集”。将出现一个 Web 表单,允许您定义新网站集的属性。
要创建网站,请输入标题和描述、URL 和网站模板(例如,团队、博客、开发人员网站等)。将出现一条消息:“网站已成功创建,并带有指定的 URL。”本文中的示例是 http://mybtsp/sites/mydocs。
“网站集”页面看起来会像这样
将文档添加到新网站集 (http://mybtsp/sites/mydocs)
接下来,将文档添加到网站集。这些文档可以包括任何 dtSearch 支持的文件类型,如 Word、Excel、PowerPoint、Access、OneNote、ZIP、HTML、XML/XSL、PDF 等。
设置匿名访问
要设置匿名访问,请参阅
https://technet.microsoft.com/en-us/library/mt791266(v=office.16).aspx
您也可以在此处找到有关管理权限的更多信息:https://technet.microsoft.com/en-us/library/ff607719(v=office.16).aspx。
更多关于 dtSearch
dtSearch.com
口袋里的搜索引擎 – 介绍 Android 上的 dtSearch
云端疾速源代码搜索
使用 Azure 文件、RemoteApp 和 dtSearch,从任何计算机或设备跨越 PB 级数据的各种数据类型进行安全即时搜索
使用 dtSearch 引擎进行 Windows Azure SQL 数据库开发
使用 dtSearch 进行分面搜索 - 不是普通的搜索过滤器
使用 dtSearch® ASP.NET Core WebDemo 示例应用程序极速提升您的搜索体验
在您的 Windows 10 通用 (UWP) 应用程序中嵌入搜索引擎
使用 dtSearch Engine DataSource API 索引 SharePoint 网站集
使用 dtSearch® ASP.NET Core WebDemo 示例应用程序
在 AWS 上使用 dtSearch(
使用 dtSearch 和 AWS Aurora 进行全文搜索