摘要:文章重點闡述了如何實現利用關鍵詞查詢的信息檢索系統。系統根據關鍵詞的屬性分為文本查詢和屬性查詢,在這兩種查詢模式中又細分為單表查詢、匹配查詢和遍歷查詢。文章最后對系統開發中所做工作進行了總結,并闡述了將來進一步對該系統進行擴充與完善的一些工作。
關鍵詞:關系數據庫;關鍵詞查詢;信息檢索;Top-K查詢
一、引言
搜索引擎并不真正搜索互聯網,它搜索的是預先整理好的網頁索引數據庫。真正意義上的搜索引擎,通常指的是收集了互聯網上幾千萬到幾十億個網頁并對網頁中的每一個文字(即關鍵詞)進行索引,建立索引數據庫的全文搜索引擎。
搜索引擎的原理,可以看作三步:從互聯網上抓取網頁→建立索引數據庫→在索引數據庫中搜索排序。
從互聯網上抓取網頁:利用能夠從互聯網上自動收集網頁的Spider系統程序,自動訪問互聯網,并沿著任何網頁中的所有URL爬到其他網頁,重復這過程,并把爬過的所有網頁收集回來。
建立索引數據庫:由分析索引系統程序對收集回來的網頁進行分析,提取相關網頁信息(包括URL、編碼類型、包含的所有關鍵詞、關鍵詞位置、生成時間、大小、與其他網頁的鏈接等),根據一定的相關度算法進行大量復雜計算,得到每一個關鍵詞的相關度(或重要性),然后用這些相關信息建立網頁索引數據庫。
在索引數據庫中搜索排序:用戶輸入關鍵詞后,由搜索系統程序從網頁索引數據庫中找到符合該關鍵詞的所有相關網頁。相關度越高,排名越靠前。最后,由頁面生成系統將搜索結果的鏈接地址和頁面內容摘要等組織起來返回給用戶。
第一步是簡單排名的首次嘗試。第二步中提出了基于當前技術水平的IR評分函數的一個排名方法。最近,第三步對第二步中的方法有了更高層次的改善。
搜索引擎的Spider會定期重新訪問所有網頁(各搜索引擎的周期不同),更新網頁索引數據庫,增加新網頁,去除死鏈接,并根據網頁文字和鏈接關系的變化重新排序。這樣,網頁的具體文字變化情況就會反映到用戶查詢的結果中。文本文檔和網頁的關鍵詞檢索已經是成熟的研究領域。近年來,結構化和半結構化數據的關鍵詞查詢開始引起研究人員的興趣。Oracle,DB2,SQLServer等關系數據庫都提供了文本搜索擴展,這為實現關系數據庫的關鍵詞查詢提供了一個基礎。
二、系統總體設計
(一)系統分析
本系統是用來模擬某商場的貨品查詢系統。利用本系統,用戶可以通過輸入關鍵詞查詢自己想要的信息。查詢的結果在返回前是經過排序的,與用戶關鍵詞最為符合的結果列在結果集的前面。系統支持文本關鍵詞查詢和數字關鍵詞查詢兩種查詢模式。在這兩種查詢模式下又細分為單表查詢,匹配查詢和遍歷查詢三種子查詢模式。
1.單表查詢。因為用戶有時候會有很明確的查詢目標,就是指定自己希望查詢的表,該功能在用戶指定的表中查詢關鍵字。把查詢到的與關鍵字匹配的元素返回給用戶。
2.匹配查詢。該查詢方式是通過匹配表查詢實現關鍵詞的查詢。當用戶輸入關鍵詞后,系統會在匹配表中查詢與該關鍵詞相對應的表和表中的屬性。這樣使系統有明確的查詢目標,大大提高了系統效率。
3.遍歷查詢。該查詢模式是在用戶遞交的關鍵詞既不符合單表查詢又不符合匹配查詢的時候,系統沒有明確的查詢目標。就遍歷整個數據庫中的所有表和所有屬性,查詢與關鍵詞匹配的元素。
(二)系統設計
該商品系統是基于Internet的查詢系統。系統是建立在B/S三層結構上,即Browser/WebServer/Database。
1.Browser(客戶端)。只需使用標準的瀏覽器,不需安裝其他程序,只需要打開網頁遞交所需查詢的關鍵字就可以使用。
2.WebServer(www服務器提供者)。記錄傳進的關鍵詞并將關鍵詞遞交給數據庫,再從數據庫中讀取查詢結果返回給用戶。
3.Database(數據庫)。存放相關的商品的信息。
網絡系統平臺模式大體上分為4種:主機終端模式、文件服務器模式、客戶機/服務器模式(Client/Server,簡稱C/S)和Web瀏覽器/服務器模式(Browser/Server,簡稱B/S)。主機終端模式,已被逐步淘汰。而文件服務器模式只適用小規模的局域網,對于用戶多、數據量大的情況就會產生網絡瓶頸,在互聯網上不能滿足用戶要求。對于遠程系統來說,主要考慮C/S模式和B/S模式。C/S模式主要由客戶應用程序(Client)、服務器管理程序(Server)和中間件(middleware)三個部件組成。C/S模式的優點:交互性強、提供更安全的存取模式、降低網絡通信量。由于C/S在邏輯結構上比B/S少一層,對于相同的任務,C/S完成的速度比B/S快,這就使得C/S模式更利于處理大量數據。
B/S模式是一種以Web技術為基礎的新型的網絡系統平臺模式。把傳統C/S模式中的服務器部分分解為一個數據服務器與一個或多個應用服務器(Web服務器),從而構成一個三層結構的客戶服務器體系。第一層客戶機是用戶與整個系統的接口。客戶的應用程序精簡到一個通用的瀏覽器軟件。第二層Web服務器將啟動相應的進程來響應客戶的請求,并動態生成一串HTML代碼,其中嵌入處理的結果,返回給客戶機的瀏覽器。第三層數據庫服務器的任務類似于C/S模式,負責協調不同的Web服務器發出的SQL請求,管理數據庫。B/S模式的優點是簡化了客戶端、用戶的操作更簡單、適用于網上信息發布。
三、系統實現
(一)文本查詢實現
1.單表查詢。單表查詢的原理就是用戶輸入要查詢的商品表,然后系統會遍歷表中所有的文本屬性,接著在這些文本屬性中尋找與用戶遞交的關鍵詞相匹配的元素,最后返回到系統界面中。同時系統會對用戶輸入的關鍵詞進行檢測,如果該關鍵詞在關系匹配表和屬性匹配表中存在就會調用更新分數函數把關系匹配表和屬性匹配表中的分數字段的值自動加“1”,如果在關系匹配表和屬性匹配表中不存在的話,那么就會調用插入函數把該關鍵詞作為新的關鍵詞插入到關系匹配表和屬性匹配表中,并且會賦予初始分數和系統的當前時間。
實現這個功能的主要有:查詢指定表、結果集評分、插入新關鍵詞以及返回有序結果集。
2.利用匹配表查詢。匹配表查詢的原理就是關鍵詞已經與表和表中的屬性一一對應起來,只要輸入的關鍵詞在關系匹配表和屬性匹配表中存在那么系統就會通過關系匹配表找到關鍵詞對應的表,然后再通過屬性匹配表找到關鍵詞在表中對應的屬性,這樣大大的提高了查詢效率,所以從理論上來說這種查詢方式的響應時間的平均值應該是最小的。實現這個功能的主要就是匹配關鍵詞。
3.遍歷數據庫查詢。遍歷數據庫查詢的原理就是當用戶沒有選擇商品類型,同時遞交的關鍵詞又不是關系匹配表和屬性匹配表中“Keywords”這個字段的子集,那么出現這種情況系統就會遍歷數據庫所有表和表中的所有文本屬性,所以這種查詢模式的系統響應時間是最長的也是最耗費系統資源的。
實現這個功能主要就是匹配關鍵詞和遍歷整個數據庫的屬性。
(二)數字查詢實現
此模塊的作用就是滿足用戶對數據庫中數字屬性的查詢。這個模塊類似文本查詢,分為單表查詢和遍歷查詢兩種查詢模式,沒有了文本查詢中的匹配查詢。
1.數字查詢的單表查詢。在用戶指定的表中,查詢用戶輸入的數字范圍,并且把結果返回給用戶。
2.遍歷查詢。在用戶沒有指定表而輸入了查詢條件,那么系統就會遍歷這個表查詢是否存在與用戶輸入的查詢范圍相符合的元素。
這個功能的主要就是通過匹配數字關鍵字和遍歷整個數據庫的數字屬性來實現。
(三)系統流程
流程上介紹了系統的運行方式。首先系統判斷用戶輸入的關鍵詞是文本屬性還是數字屬性,再判定用戶的查詢方式是單表查詢還是非單表查詢,如果是非單表查詢再判斷是匹配查詢還是遍歷查詢,如果存在所要查詢的關鍵字那么把排序好的結果集返回給用戶,不存在的話就返回個空集給用戶,告訴用戶輸入的關鍵詞在數據庫中沒有找到匹配項。
四、結束語
關鍵詞查詢是當今互聯網上使用最為廣泛的數據庫查詢技術之一。它以其友好的查詢界面,和與人們自然語言相接近,并且是十分高效贏得了用戶們的肯定。比如,現今被最為推崇的搜索引擎Google它就是基于關鍵詞查詢。
本文詳細論述了一個基于關鍵詞查詢的商品檢索系統。通過對系統的結構和功能的分析了解系統的主要功能是完成用戶輸入的關鍵詞在數據庫中的查詢工作,返回一個有序的結果集。
系統根據遞交的關鍵詞的屬性分為了文本查詢和數字查詢兩種,每一種都有不同的評分標準和相關算法,在這兩種模式下又分為單表查詢,匹配查詢和遍歷查詢這三種子模式。
以上幾種查詢方式是符合用戶使用系統的習慣,最大可能滿足用戶不同的查詢方式。系統是經過嚴格的編碼和多次的測試的,結果集的產生是準確的,符合用戶遞交的關鍵字同時系統還會顯示系統響應時間反映了系統執行這次查詢的效率,讓用戶對自己這次關鍵詞查詢在時間花費上有定量的認識。
當然,如果能整合數據庫檢索系統,信息檢索系統和XML檢索系統,不管采用怎樣的方式,關鍵詞提交搜索仍是用戶與系統之間最重要的接口。繼續深入探討以各種方式存儲在數據庫中的信息并返回相關信息成為以后工作中的重點。
參考文獻:
1.王云.關系數據庫的索引技術[J].計算機與信