原創(chuàng)|使用教程|編輯:龔雪|2013-11-13 11:33:21.000|閱讀 524 次
概述:Windows Azure SQL Database不支持CONTAINS關鍵詞,這個功能需要通過第三方軟件來實現(xiàn)。本文將介紹在Windows Azure SQL Database中如何使用dtSearch Engine實現(xiàn)全文搜索功能。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Windows Azure SQL Database不支持CONTAINS關鍵詞。CONTAINS非常重要,因為它支持搜索單個詞和短語的精確或模糊(不太精確的)匹配項、在一定差別范圍內的相近詞或加權匹配項。CONTAINS是一個謂詞,用于在Transact-SQL SELECT語句的中對包含基于字符的數據類型的全文索引列執(zhí)行SQL Server全文搜索。
不過這個功能可以通過第三方軟件來實現(xiàn)。本文以舊金山的所有電影信息為例來介紹如何實現(xiàn)。這些數據不是很標準,有些信息非常不好搜索。我使用的SQL數據庫托管在了Windows Azure平臺上。
我的目標是在數據庫表中能夠找到記錄,快速、高效地搜索所有列和所有區(qū)域。實際上,我想建立一個主索引,允許我對生成的索引執(zhí)行本地搜索,然后一旦我發(fā)現(xiàn)我要尋找的記錄就能從特定數據庫表中提取出來。
dtSearch可以幫助我實現(xiàn)以上目標。首先我下載并安裝它(下載dtSearch)。當然,其他的許多搜索需求我也是使用它來完成,dtSearch的搜索功能非常齊全。在這篇文章中,將重點放在如何快速執(zhí)行數據庫表的全文檢索索引。
本文你將學習到:
這個例子后面可能會擴展這個示例并從dtSearch中檢索符合條件的記錄。
為了執(zhí)行下面的演示,必須要設置相關的環(huán)境。
這個任務是創(chuàng)建一個存儲我們所有的搜索內容的虛擬機。
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中查看數據庫
接下來我們將介紹如何獲取連接字符串信息。不幸的是,Windows Azure portal不提供需要連接字符串的確切格式。
5、請注意,在下圖所示的右下角,你可以查看數據庫的連接信息。這個信息以便于Visual Studio項目可以連接到數據庫并索引數據庫里面的信息。
查看連接信息
6、下圖顯示的是需要連接到數據庫的連接字符串。dtSearch要求此連接字符串調用時要使用不同格式——OLEDb。我們將把信息放入ADO.NET連接字符串,并修改它和OLEDb一致。
查看ADO.NET連接字符串
7、請注意,下圖中的連接字符串已經被修改為與dtSearch所需要的格式一致。這是OLEDB所需的格式。
格式化的連接字符串
8、 連接字符串需要一個連續(xù)的線,如下圖所示。你的連接字符串和下圖的可能會有明顯的差異。
連接字符串
我們將使用SQL Server management studio來查看數據庫索引。
9、為了測試連接和查看實際的數據結構,我們將啟動SQL Server Management Studio。在對象資源管理器窗口單擊數據庫引擎。
SQL Server Management Studio
10、同樣的信息被用于連接字符串,將在SQL Server Management Studio中工作。
連接到數據庫
11、如下所示,選擇創(chuàng)建一個查詢顯示電影表中的記錄。
在SFmovies數據庫中查看電影表
12、注意,下圖中的所有電影信息均顯示在SQL Server Management Studio中。
顯示電影信息
13、現(xiàn)在,我們已經有了連接字符串,我們可以開始執(zhí)行示例了(ADONETDemo)。你可以在這里下載這個項目文件: (C:\Program Files (x86)\dtSearch Developer\examples\cs4\ado_demo\ADONETDemo.sln)。從Build菜單,你可以生成解決方案。
運行dtSearch項目
14、 一旦項目運行,你將看到一個彈出窗。點擊按鈕讀取數據庫索引。
索引數據庫
15、請注意下圖中的索引目錄。數據庫索引一旦被創(chuàng)建,索引文件將被存儲在如下圖中的文件夾里。單擊下圖中的“Index”按鈕。
索引數據庫
16、這時,應用程序將需要你的 OLEDB 連接字符串。將其粘帖到下圖所示的紅框中。然后單擊“OK”。
輸入連接字符串
17、索引創(chuàng)建完成可能需要花幾分鐘時間。下圖中最下面的紅框中表示索引創(chuàng)建的進度。
索引數據庫
18、在相應的索引文件夾中,可以看到此過程中已經生成的索引文件列表。
查看已生成的索引
19、現(xiàn)在,索引已經處理完了,接下來我們要運行應用程序并執(zhí)行搜索。點擊下圖紅框中的按鈕即可執(zhí)行搜索。
在數據庫中嵌入字符串搜索
20、當你鍵入搜索字符串,在左邊的列表框中你可以看到成功發(fā)現(xiàn)的字符串。點擊搜索按鈕可以深入到搜索結果中。
輸入搜索字符串
21、所有的結果都顯示在搜索結果窗口中。下圖中左邊的窗口顯示了電影行的ID,這個ID作為記錄在數據庫中的唯一標識。我們不能回到SQL Server Management Studio中查看記錄。
注意:在一個真實的應用程序你可以提取行ID,然后再執(zhí)行另一個查詢。
?
查看搜索細節(jié)
22、請注意,如果我們?yōu)殡娪暗?01行做導航,我們可以看到《Golden Gate Bridge》在SQL Server Management Studio結果窗口中可見。
查看搜索結果
在SQL數據庫中快速找到內容是生產力的關鍵所在。通過本文創(chuàng)建例子的后,你應該能夠創(chuàng)建擁有快速全文檢索功能的應用程序了。
dtSearch Engine除了文章中所介紹的功能外,還有許多高級功能,包括分面搜索(Faceted Search)、在SQL數據庫中高亮全文搜索BLOB數據等。
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網