汪三淇 杜梅
摘 要:科學技術在快速地發(fā)展,隨著生活水平的提高,人們的需求也在增加, Web 技術已經不單單給人們提供閑暇時玩耍所需,而是越來越成為人們搜索信息的憑借了。我們知道,網上有很多的信息,想要了解什么,上網一查,一目了然。但怎樣能在短時間得到自己想要查詢的信息,就必須要搜索,一個好的搜索引擎是非常必要的。本文簡單地介紹一個搜索圖片的全文檢索系統,它可以方便用戶通過各種相關的信息快速查詢到需要的資料。
關鍵詞:圖庫;檢索;系統
為了便于管理,我們根據全文檢索的原理,可以通過搜索圖片的相關信息檢索出相應的圖片,這樣有助于規(guī)范用戶上傳圖片的內容,避免不良信息在網絡中傳播。
一、研究內容
本文主要采用現在流行的.net語言進行系統的開發(fā),使得系統具有一定的應用性、實用性、實時性,其主要的功能模塊包括:
(一)前臺圖片展示
當用戶通過輸入相關字段后,系統會根據字段列出用戶所需圖片,可以對圖片評論,也可以下載圖片。
(二)后臺用戶管理
該模塊主要是為了滿足管理員對用戶的身份的監(jiān)控,控制和管理。
(三)后臺相冊管理
該模塊主要是為方便管理員對用戶創(chuàng)建的相冊和圖片進行監(jiān)控和管理。
(四)后臺評論管理
該模塊主要是為了方便管理員了解最新的圖片評論,并及時審查評論。
(五)搜索模塊
該模塊主要是為了滿足用戶和管理員對圖片的搜索。這個模塊也是本項目的核心。
二、IOC 容器
IOC,意思是控制反轉,也被稱為DI,即依賴注入,引入這個思想的目的是使程序員編寫程序時做到構建與使用分離,減少模塊之間的耦合??紤]到本項目基于C#語言,所以使用的IOC工具是Ninject。
Ninject的使用非常方便,只需要通過工廠類將接口類與實現該接口的實體類綁定起來。在需要使用到相應的屬性時只需要新建一個相應的接口,即可由工廠產生一個相應的實體類。通過在構建和使用之間增加一層,以達到解耦的目的。
三、MVC 設計模式
模型、視圖、控制器,這種設計模式在當今使用的非常廣泛,并且產生了許多變種。本項目使用的是 ASP. NET 提供的MVC 4.0,即所有請求都將發(fā)送至 controller,并有controller 決定接下來做什么。
四、LINQ
LINQ 最大的特點就是能以數據庫查詢的形式訪問幾乎所有形式的數據,給人的感覺就是易于使用和閱讀。本項目將所有對數據庫操作的 SQL 語句都換成 LINQ,主要原因還是因為使用 LINQ 時 IDE 可以提供智能提示,保證數據 庫操作不會出錯。
五、核心設計
在當今社會,隨著信息量的爆炸式增長以及網民的大量增加,人們對搜索引 擎的依賴越來越大。如何快速獲取用戶想要的信息就成了眾多軟件設計師的終 極目標。
(一)結構分析
根據本身的特點,同時根據圖片的特殊性,采取了全文檢索技術和 NOSQL 完成這一項目的開發(fā)與設計。我們在總體上采用 B/S 模式的架構,具有管理員和用戶雙重角色的管理系統,用戶和管理員信息存在關系型數據庫中,而圖片則存在文檔型數據庫中。
在整個過程中,全文檢索是真正的核心功能。為了讓用戶能夠搜索到想要的東西,第一步是為用戶構建索引;第二步是構建索引,事實上Lucene索引過程分為三個主要操作步驟:將原始文檔轉換成文本、分析文本、將分析好的文本保存到索引中。如果只希望可以輸出結果,只需要對其儲存就可以;如果既需要通過其索引也需要輸出,則兩者都要聲明。三、實現搜索:和索引接口一樣,Lucene 提供的搜索接口很簡單,這也是為什么 Lucene 流行的原因。在Lucene 中,對于搜索過程有以下幾個核心類:IndexSearcher;Term;Query;TermQuery;TopDocs。
(二)數據庫設計
為使用戶和管理員數據信息便于讀取,本項目利用 SQLServer2008這樣的關系型數據庫進行數據的存儲。 另外本項目是先建好數據庫, 再利用 Entity Framework 自動生成相應的抽象類和實體類。
(三)系統工程組成
在這次系統開發(fā)的過程中,針對其必要性,建立了兩個解決方案,是:Albums.Domain 和 Albums.WebUI。
其中 Albums.Domain 的功能是利用 Entity Framework 生成相應的抽象類和實體類并使之與數據庫映射關聯起來,優(yōu)點是完成程序與數據庫之間的解耦。同時,Albums.WebUI 則是完成了 Web 上前臺和后臺的業(yè)務邏輯和界面設計。Albums.WebUI 使用當前流行的標準 MVC 模式,即所有請求先經過 Controller,而后通過 Controller 中的方法調用相關的 view。
六、功能模塊
(一)前臺主界面的構成
在前臺主界面的設計中,采用了 bootstrap 作為前端設計框架。這種布局框架簡潔、直觀、強悍,讓 web 開發(fā)更迅速、簡單。
(二)系統登錄模塊
在登錄的過程中,采用用戶名、密碼組合的形式進行登錄,如果操作正確,則進行相應的跳轉,如果操作錯誤,則會進行相應的提示操作信息。
(三)后臺管理模塊
在后臺界面的設計中,采用了美觀且功能強大的 easyui 作為設計框架。這種 框架提供了相當多的功能。
整個后臺界面分層三個部分,上面的主頁、左邊的菜單欄以及中間的列表區(qū)域。由于采用了Ajax技術,使得中間的列表信息可以部分刷新,擁有非常好的用戶體驗。
總之,計算機和網絡對人類的活動產生深遠的影響,可以說當今人類能以現在的速度發(fā)展沒有計算機和網絡是做不到的。在互聯網快速發(fā)展的過程中,搜索這兩個字是當今互聯網業(yè)界最為流行的字眼之一,無論是國外的 google 還是國內的 baidu,無論從公司的市值還是實用度來看,它都是互聯網界的佼佼者。在今后的生活中,人們對搜索引擎的需求會越來越大。
參考文獻:
[1]Craig Walls.Spring實戰(zhàn)(第3版)[M].北京:人民郵電出版社,2013.
[2]陳雄華,林開雄.Spring3.x企業(yè)應用開發(fā)實戰(zhàn)[M].北京:電子工業(yè)出版社,2012.
作者簡介:汪三淇(1995—),男,遼寧沈陽人,主要研究方向:計算機科學與技術。