使用 dtSearch 引擎进行 Windows Azure SQL 数据库开发





0/5 (0投票)
本文将重点介绍如何索引数据库表,
概述
Windows Azure SQL 数据库 不支持 CONTAINS
关键字。CONTAINS
很重要,因为它支持对单个单词和短语的精确或模糊(不太精确)匹配、单词之间的特定距离内的匹配或加权匹配进行搜索。CONTAINS
是 Transact-SQL SELECT 语句的 WHERE
子句中使用的谓词 http://technet.microsoft.com/en-us/library/ms188047.aspx。
但是,借助第三方软件可以实现此功能。我最近下载了在旧金山拍摄的所有电影信息。旧金山政府网站提供了这些有趣的信息,我想快速地搜索它们。数据并非高度规范化,因此有很多列难以搜索。我下载了这些信息(https://data.sfgov.org/Arts-Culture-and-Recreation-/Film-Locations-in-San-Francisco/yitu-d5am)并将其导入数据库。具体来说,我使用的是托管在 Windows Azure 平台上的 SQL 数据库。
我的目标是能够快速有效地查找数据库表中的记录,搜索所有列和所有行。本质上,我想构建一个主索引,允许我对生成的索引进行本地搜索,然后在我找到所需内容时能够拉取数据库表中的特定记录。
dtSearch 是一款可以帮助您实现这一目标的产品。 我下载并安装了它。当然,我也将其用于我其他的许多搜索需求。dtSearch 有多种产品。本文将重点介绍如何索引数据库表,以便您可以执行闪电般的快速全文搜索。
如何在 Windows Azure SQL 数据库中获取全文搜索功能
目标
在此实践操作实验中,您将学到
- 如何使用 dtSearch 为 Azure 托管的 SQL 数据库表创建完整索引。
- 如何将索引本地存储在客户端,以实现带模糊逻辑的超快速查询
- 如何识别和构建适当的连接字符串 (OLEDB),以启用 dtSearch 提供的 Visual Studio 示例项目应用程序
- 如何在 SQL Azure 中执行全文搜索并查找匹配的记录
为了进一步开发此示例,可以扩展该示例并从 dtSearch 中检索匹配的记录。
必备组件
完成此实践操作实验需要
- Windows Azure 订阅
- dtSearch 评估版(http://www.dtsearch.com)
安装
为了执行此实践操作实验中的练习,您需要设置您的环境。
- 首先登录到 Windows Azure Portal(http://manage.windowsazure.com)。
- 下载 SF 电影数据(https://data.sfgov.org/Arts-Culture-and-Recreation-/Film-Locations-in-San-Francisco/yitu-d5am)并将其加载到 Windows Azure SQL 数据库。
任务 1 – 注册 dtSearch 程序集,在 Portal 中查看 Windows Azure SQL 数据库
此任务是关于创建一个 VM,我们将在其中存储所有可搜索的内容。
- 请注意,下面我正在注册 dtSearch 安装的一个程序集。Regsvr32 是开始的重要命令。
注册程序集 - 本文使用 Visual Studio 2013 作为 IDE。从菜单中选择 ** 文件 | 打开 | 项目**。打开项目
- 导航到 dtSearch 的安装文件夹。(C:\Program Files (x86)\dtSearch Developer\examples\cs4\ado_demo)。如下图所示打开项目。
打开解决方案 - 请注意,下图中的数据库已存在。该数据库名为 SFmovies。如前所述,该数据代表过去几十年来在旧金山拍摄的电影。在 Windows Azure Portal 中查看数据库
任务 2 – 获取连接字符串信息
在下一节中,我们将获取连接字符串信息。不幸的是,Windows Azure Portal 未提供所需的连接字符串的确切格式。
- 请注意,在下图的右下角,您可以查看数据库的连接信息。这些信息对于 Visual Studio 项目连接到数据库并索引其中的信息至关重要。
查看连接信息 - 下图是连接到数据库所需的连接字符串。dtSearch 要求此连接字符串使用不同的格式,称为 OLEDB。我们将采用 ADO.NET 连接字符串中的信息并进行修改,使其符合 OLEDB。查看 ADO.NET 连接字符串
- 请注意,下图中已修改连接字符串以符合 dtSearch 所需的格式。这是 OLEDB 所需的格式。
重新格式化的连接字符串 - 连接字符串需要为一行,如下图所示。您的连接字符串将根据您在 Windows Azure 云中托管的数据库而有所不同。
任务 3 – SQL Server Management Studio
我们将使用 SQL Server Management Studio 来查看我们希望索引的数据库。
- 为了测试连接性并查看实际的数据结构,我们将启动 SQL Server Management Studio。在“对象资源管理器”窗口中,单击“数据库引擎”。
SQL Server Management Studio - 此处使用的与连接字符串相同的信息也可以在 SQL Server Management Studio 中使用。连接到数据库
- 如下图所示,选择创建一个查询以显示电影表中的记录。
在 SFmovies 数据库中查看电影表 - 请注意,下图中显示了 SQL Server Management Studio 中的所有电影信息。查看电影数据
- 现在我们有了连接字符串,就可以开始执行演示(ADONETDemo)了。您可以在此处下载此项目:(C:\Program Files (x86)\dtSearch Developer\examples\cs4\ado_demo\ADONETDemo.sln)。从生成菜单中,您可以选择生成解决方案。
运行 dtSearch 项目 - 项目运行后,您会看到一个弹出窗口。单击显示“索引数据库”的按钮。索引数据库
- 请注意下图中的索引目录。数据库索引完成后,代表索引的文件将存储在下面的文件夹中。单击下面的“索引”按钮。
索引数据库 - 此时,应用程序将要求您提供 OLEDB 连接字符串。粘贴到下面的框中。然后单击 OK。输入连接字符串
- 此时,索引可能需要几分钟才能完成。下面的红色框显示了索引过程中正在进行的进度。
索引数据库 - 在前面指定的文件夹中,您可以看到在此过程中生成的索引文件列表。查看生成的索引
- 索引过程完成后,我们就可以运行应用程序并执行搜索了。单击下面的搜索命令按钮。
在数据库中搜索嵌入的字符串 - 当您输入搜索字符串时,您将在左侧列表框中看到成功找到的字符串。单击搜索按钮以深入搜索结果。输入搜索字符串
- 请注意,所有结果都显示在搜索结果屏幕中。请注意左下角,我们有电影行 ID,它唯一标识数据库中的记录。我们无法返回 SQL Server Management Studio 查看此记录。
注意:在实际的应用中,您可以提取行 ID 并执行另一个查找。
查看搜索详细信息 - 请注意,如果我们导航到电影行 ID 为 301,可以看到 SQL Server Management Studio 结果屏幕中显示了金门大桥。本文至此已圆满结束。查看搜索结果
摘要
在 SQL 数据库中快速查找内容是提高工作效率的关键。基于本文中的示例,您应该能够创建能够执行闪电般快速全文搜索的应用程序。
除了本文所述内容之外,dtSearch 引擎还支持许多其他高级选项,包括:分面搜索、基于字段的正面和负面词项加权,以及搜索 SQL 数据库中 BLOB 数据的全文内容并突出显示命中项。
请参阅http://support.dtsearch.com/faq/bysubject.htm 上的“数据库和字段搜索”,了解有关这些高级搜索选项的更多信息。另请参阅http://www.dtsearch.com/PLF_Features_2.html 以了解 dtSearch 全文搜索选项的总体概述。有关您通常可以使用 dtSearch 引擎进行编程的概述,包括支持的 BLOB 数据类型等,请参阅http://www.dtsearch.com/PLF_engine_2.html 和http://www.dtsearch.com/PLF_DocFilters.html。
更多关于 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 进行全文搜索