彩票走势图

在Windows Azure SQL Database中如何使用dtSearch Engine实现全文搜索功能

原创|使用教程|编辑:龚雪|2013-11-13 11:33:21.000|阅读 479 次

概述:Windows Azure SQL Database不支持CONTAINS关键词,这个功能需要通过第三方软件来实现。本文将介绍在Windows Azure SQL Database中如何使用dtSearch Engine实现全文搜索功能。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

Windows Azure SQL Database不支持CONTAINS关键词。CONTAINS非常重要,因为它支持搜索单个词和短语的精确或模糊(不太精确的)匹配项、在一定差别范围内的相近词或加权匹配项。CONTAINS是一个谓词,用于在Transact-SQL SELECT语句的中对包含基于字符的数据类型的全文索引列执行SQL Server全文搜索

不过这个功能可以通过第三方软件来实现。本文以旧金山的所有电影信息为例来介绍如何实现。这些数据不是很标准,有些信息非常不好搜索。我使用的SQL数据库托管在了Windows Azure平台上。

我的目标是在数据库表中能够找到记录,快速、高效地搜索所有列和所有区域。实际上,我想建立一个主索引,允许我对生成的索引执行本地搜索,然后一旦我发现我要寻找的记录就能从特定数据库表中提取出来。

dtSearch可以帮助我实现以上目标。首先我下载并安装它(下载dtSearch)。当然,其他的许多搜索需求我也是使用它来完成,dtSearch的搜索功能非常齐全。在这篇文章中,将重点放在如何快速执行数据库表的全文检索索引


目标

本文你将学习到:

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

这个例子后面可能会扩展这个示例并从dtSearch中检索符合条件的记录。

前提条件

  • Windows Azure授权
  • 评估版的dtSearch

安装

为了执行下面的演示,必须要设置相关的环境。

  • 登陆到Windows Azure Portal (//manage.windowsazure.com)
  • 下载SF Movie数据(//data.sfgov.org/Arts-Culture-and-Recreation-/Film-Locations-in-San-Francisco/yitu-d5am),并将数据加载到Windows Azure SQL Database中。

任务1 – 注册dtSearch Assembly,观看Windows Azure SQL Database at the Portal

这个任务是创建一个存储我们所有的搜索内容的虚拟机。

1、请注意下面我安装dtSearch注册的组件之一。Regsvr32是使工作开始的一个重要命令。


注册组件

2、本文使用Visual Studio 2013作为IDE。从菜单中选择“文件|打开|项目”。


打开项目

3、导航中显示了dtSearch的安装文件夹。 (C:\Program Files (x86)\dtSearch Developer\examples\cs4\ado_demo\bin\x64\Debug\index)。打开项目,如下图所示。


打开解决方案

4、请注意,在下面的截图中可以看到数据库已经存在了。这个数据库名为SFmovies。正如前面提到的,这个数据包含在过去几十年中旧金山拍摄的电影信息。


在Windows Azure portal中查看数据库

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

接下来我们将介绍如何获取连接字符串信息。不幸的是,Windows Azure portal不提供需要连接字符串的确切格式。

5、请注意,在下图所示的右下角,你可以查看数据库的连接信息。这个信息以便于Visual Studio项目可以连接到数据库并索引数据库里面的信息。


查看连接信息

6、下图显示的是需要连接到数据库的连接字符串。dtSearch要求此连接字符串调用时要使用不同格式——OLEDb。我们将把信息放入ADO.NET连接字符串,并修改它和OLEDb一致。


查看ADO.NET连接字符串

7、请注意,下图中的连接字符串已经被修改为与dtSearch所需要的格式一致。这是OLEDB所需的格式。


格式化的连接字符串

8、 连接字符串需要一个连续的线,如下图所示。你的连接字符串和下图的可能会有明显的差异。


连接字符串

任务3 – SQL Server Management Studio 

我们将使用SQL Server management studio来查看数据库索引。

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


SQL Server Management Studio

10、同样的信息被用于连接字符串,将在SQL Server Management Studio中工作。


连接到数据库

11、如下所示,选择创建一个查询显示电影表中的记录。


SFmovies数据库中查看电影表

12、注意,下图中的所有电影信息均显示在SQL Server Management Studio中。


显示电影信息

13、现在,我们已经有了连接字符串,我们可以开始执行示例了(ADONETDemo)。你可以在这里下载这个项目文件: (C:\Program Files (x86)\dtSearch Developer\examples\cs4\ado_demo\ADONETDemo.sln)。从Build菜单,你可以生成解决方案。


运行dtSearch项目

14、 一旦项目运行,你将看到一个弹出窗。点击按钮读取数据库索引


索引数据库

15、请注意下图中的索引目录。数据库索引一旦被创建,索引文件将被存储在如下图中的文件夹里。单击下图中的“Index”按钮。


索引数据库

16、这时,应用程序将需要你的 OLEDB 连接字符串。将其粘帖到下图所示的红框中。然后单击“OK”。


输入连接字符串

17、索引创建完成可能需要花几分钟时间。下图中最下面的红框中表示索引创建的进度。


索引数据库

18、在相应的索引文件夹中,可以看到此过程中已经生成的索引文件列表。


查看已生成的索引

19、现在,索引已经处理完了,接下来我们要运行应用程序并执行搜索。点击下图红框中的按钮即可执行搜索。


在数据库中嵌入字符串搜索

20、当你键入搜索字符串,在左边的列表框中你可以看到成功发现的字符串。点击搜索按钮可以深入到搜索结果中。


输入搜索字符串

21、所有的结果都显示在搜索结果窗口中。下图中左边的窗口显示了电影行的ID,这个ID作为记录在数据库中的唯一标识。我们不能回到SQL Server Management Studio中查看记录。

注意:在一个真实的应用程序你可以提取行ID,然后再执行另一个查询。

 
查看搜索细节

22、请注意,如果我们为电影地301行做导航,我们可以看到《Golden Gate Bridge》在SQL Server Management Studio结果窗口中可见。


查看搜索结果

总结

在SQL数据库中快速找到内容是生产力的关键所在。通过本文创建例子的后,你应该能够创建拥有快速全文检索功能的应用程序了。

dtSearch Engine除了文章中所介绍的功能外,还有许多高级功能,包括分面搜索(Faceted Search)、在SQL数据库中高亮全文搜索BLOB数据等。

更多dtSearch Engine高级功能请参考>>


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP