65.9K
CodeProject 正在变化。 阅读更多。
Home

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

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 11 月 6 日

CPOL

8分钟阅读

viewsIcon

35629

本文将重点介绍如何索引数据库表, 以便执行闪电般快速的全文本搜索

概述

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 数据库中获取全文搜索功能

目标

在此实践操作实验中,您将学到

  1. 如何使用 dtSearch 为 Azure 托管的 SQL 数据库表创建完整索引。
  2. 如何将索引本地存储在客户端,以实现带模糊逻辑的超快速查询
  3. 如何识别和构建适当的连接字符串 (OLEDB),以启用 dtSearch 提供的 Visual Studio 示例项目应用程序
  4. 如何在 SQL Azure 中执行全文搜索并查找匹配的记录

为了进一步开发此示例,可以扩展该示例并从 dtSearch 中检索匹配的记录。

必备组件

完成此实践操作实验需要

  1. Windows Azure 订阅
  2. dtSearch 评估版(http://www.dtsearch.com

安装

为了执行此实践操作实验中的练习,您需要设置您的环境。

  1. 首先登录到 Windows Azure Portalhttp://manage.windowsazure.com)。
  2. 下载 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,我们将在其中存储所有可搜索的内容。

  1. 请注意,下面我正在注册 dtSearch 安装的一个程序集。Regsvr32 是开始的重要命令。


     
    注册程序集
  2. 本文使用 Visual Studio 2013 作为 IDE。从菜单中选择 ** 文件 | 打开 | 项目**。

     

    打开项目
  3. 导航到 dtSearch 的安装文件夹。(C:\Program Files (x86)\dtSearch Developer\examples\cs4\ado_demo)。如下图所示打开项目。


     
    打开解决方案
  4. 请注意,下图中的数据库已存在。该数据库名为 SFmovies。如前所述,该数据代表过去几十年来在旧金山拍摄的电影。

     

    在 Windows Azure Portal 中查看数据库

任务 2 – 获取连接字符串信息

在下一节中,我们将获取连接字符串信息。不幸的是,Windows Azure Portal 未提供所需的连接字符串的确切格式。

  1. 请注意,在下图的右下角,您可以查看数据库的连接信息。这些信息对于 Visual Studio 项目连接到数据库并索引其中的信息至关重要。


     
    查看连接信息
  2. 下图是连接到数据库所需的连接字符串dtSearch 要求此连接字符串使用不同的格式,称为 OLEDB。我们将采用 ADO.NET 连接字符串中的信息并进行修改,使其符合 OLEDB

     

    查看 ADO.NET 连接字符串
  3. 请注意,下图中已修改连接字符串以符合 dtSearch 所需的格式。这是 OLEDB 所需的格式。


     
    重新格式化的连接字符串
  4. 连接字符串需要为一行,如下图所示。您的连接字符串将根据您在 Windows Azure 云中托管的数据库而有所不同。

 

连接字符串

任务 3 – SQL Server Management Studio 

我们将使用 SQL Server Management Studio 来查看我们希望索引的数据库。

  1. 为了测试连接性并查看实际的数据结构,我们将启动 SQL Server Management Studio。在“对象资源管理器”窗口中,单击“数据库引擎”。


     
    SQL Server Management Studio
  2. 此处使用的与连接字符串相同的信息也可以在 SQL Server Management Studio 中使用。

     

    连接到数据库
  3. 如下图所示,选择创建一个查询以显示电影表中的记录。


     
    SFmovies 数据库中查看电影表
  4. 请注意,下图中显示了 SQL Server Management Studio 中的所有电影信息。

     

    查看电影数据
  5. 现在我们有了连接字符串,就可以开始执行演示(ADONETDemo)了。您可以在此处下载此项目:(C:\Program Files (x86)\dtSearch Developer\examples\cs4\ado_demo\ADONETDemo.sln)。从生成菜单中,您可以选择生成解决方案


     
    运行 dtSearch 项目
  6. 项目运行后,您会看到一个弹出窗口。单击显示“索引数据库”的按钮。

     

    索引数据库
  7. 请注意下图中的索引目录。数据库索引完成后,代表索引的文件将存储在下面的文件夹中。单击下面的“索引”按钮。


     
    索引数据库
  8. 此时,应用程序将要求您提供 OLEDB 连接字符串。粘贴到下面的框中。然后单击 OK

     

    输入连接字符串
  9. 此时,索引可能需要几分钟才能完成。下面的红色框显示了索引过程中正在进行的进度。


     
    索引数据库
  10. 在前面指定的文件夹中,您可以看到在此过程中生成的索引文件列表。

     

    查看生成的索引
  11. 索引过程完成后,我们就可以运行应用程序并执行搜索了。单击下面的搜索命令按钮。


     
    在数据库中搜索嵌入的字符串
  12. 当您输入搜索字符串时,您将在左侧列表框中看到成功找到的字符串。单击搜索按钮以深入搜索结果。

     

    输入搜索字符串
  13. 请注意,所有结果都显示在搜索结果屏幕中。请注意左下角,我们有电影行 ID,它唯一标识数据库中的记录。我们无法返回 SQL Server Management Studio 查看此记录。

    注意:在实际的应用中,您可以提取行 ID 并执行另一个查找。

     

    查看搜索详细信息
  14. 请注意,如果我们导航到电影行 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.htmlhttp://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(EC2 & EBS)
使用 dtSearch 和 AWS Aurora 进行全文搜索

© . All rights reserved.