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