汪三淇 杜梅
摘 要:科学技术在快速地发展,随着生活水平的提高,人们的需求也在增加, Web 技术已经不单单给人们提供闲暇时玩耍所需,而是越来越成为人们搜索信息的凭借了。我们知道,网上有很多的信息,想要了解什么,上网一查,一目了然。但怎样能在短时间得到自己想要查询的信息,就必須要搜索,一个好的搜索引擎是非常必要的。本文简单地介绍一个搜索图片的全文检索系统,它可以方便用户通过各种相关的信息快速查询到需要的资料。
关键词:图库;检索;系统
为了便于管理,我们根据全文检索的原理,可以通过搜索图片的相关信息检索出相应的图片,这样有助于规范用户上传图片的内容,避免不良信息在网络中传播。
一、研究内容
本文主要采用现在流行的.net语言进行系统的开发,使得系统具有一定的应用性、实用性、实时性,其主要的功能模块包括:
(一)前台图片展示
当用户通过输入相关字段后,系统会根据字段列出用户所需图片,可以对图片评论,也可以下载图片。
(二)后台用户管理
该模块主要是为了满足管理员对用户的身份的监控,控制和管理。
(三)后台相册管理
该模块主要是为方便管理员对用户创建的相册和图片进行监控和管理。
(四)后台评论管理
该模块主要是为了方便管理员了解最新的图片评论,并及时审查评论。
(五)搜索模块
该模块主要是为了满足用户和管理员对图片的搜索。这个模块也是本项目的核心。
二、IOC 容器
IOC,意思是控制反转,也被称为DI,即依赖注入,引入这个思想的目的是使程序员编写程序时做到构建与使用分离,减少模块之间的耦合。考虑到本项目基于C#语言,所以使用的IOC工具是Ninject。
Ninject的使用非常方便,只需要通过工厂类将接口类与实现该接口的实体类绑定起来。在需要使用到相应的属性时只需要新建一个相应的接口,即可由工厂产生一个相应的实体类。通过在构建和使用之间增加一层,以达到解耦的目的。
三、MVC 设计模式
模型、视图、控制器,这种设计模式在当今使用的非常广泛,并且产生了许多变种。本项目使用的是 ASP. NET 提供的MVC 4.0,即所有请求都将发送至 controller,并有controller 决定接下来做什么。
四、LINQ
LINQ 最大的特点就是能以数据库查询的形式访问几乎所有形式的数据,给人的感觉就是易于使用和阅读。本项目将所有对数据库操作的 SQL 语句都换成 LINQ,主要原因还是因为使用 LINQ 时 IDE 可以提供智能提示,保证数据 库操作不会出错。
五、核心设计
在当今社会,随着信息量的爆炸式增长以及网民的大量增加,人们对搜索引 擎的依赖越来越大。如何快速获取用户想要的信息就成了众多软件设计师的终 极目标。
(一)结构分析
根据本身的特点,同时根据图片的特殊性,采取了全文检索技术和 NOSQL 完成这一项目的开发与设计。我们在总体上采用 B/S 模式的架构,具有管理员和用户双重角色的管理系统,用户和管理员信息存在关系型数据库中,而图片则存在文档型数据库中。
在整个过程中,全文检索是真正的核心功能。为了让用户能够搜索到想要的东西,第一步是为用户构建索引;第二步是构建索引,事实上Lucene索引过程分为三个主要操作步骤:将原始文档转换成文本、分析文本、将分析好的文本保存到索引中。如果只希望可以输出结果,只需要对其储存就可以;如果既需要通过其索引也需要输出,则两者都要声明。三、实现搜索:和索引接口一样,Lucene 提供的搜索接口很简单,这也是为什么 Lucene 流行的原因。在Lucene 中,对于搜索过程有以下几个核心类:IndexSearcher;Term;Query;TermQuery;TopDocs。
(二)数据库设计
为使用户和管理员数据信息便于读取,本项目利用 SQLServer2008这样的关系型数据库进行数据的存储。 另外本项目是先建好数据库, 再利用 Entity Framework 自动生成相应的抽象类和实体类。
(三)系统工程组成
在这次系统开发的过程中,针对其必要性,建立了两个解决方案,是:Albums.Domain 和 Albums.WebUI。
其中 Albums.Domain 的功能是利用 Entity Framework 生成相应的抽象类和实体类并使之与数据库映射关联起来,优点是完成程序与数据库之间的解耦。同时,Albums.WebUI 则是完成了 Web 上前台和后台的业务逻辑和界面设计。Albums.WebUI 使用当前流行的标准 MVC 模式,即所有请求先经过 Controller,而后通过 Controller 中的方法调用相关的 view。
六、功能模块
(一)前台主界面的构成
在前台主界面的设计中,采用了 bootstrap 作为前端设计框架。这种布局框架简洁、直观、强悍,让 web 开发更迅速、简单。
(二)系统登录模块
在登录的过程中,采用用户名、密码组合的形式进行登录,如果操作正确,则进行相应的跳转,如果操作错误,则会进行相应的提示操作信息。
(三)后台管理模块
在后台界面的设计中,采用了美观且功能强大的 easyui 作为设计框架。这种 框架提供了相当多的功能。
整个后台界面分层三个部分,上面的主页、左边的菜单栏以及中间的列表区域。由于采用了Ajax技术,使得中间的列表信息可以部分刷新,拥有非常好的用户体验。
总之,计算机和网络对人类的活动产生深远的影响,可以说当今人类能以现在的速度发展没有计算机和网络是做不到的。在互联网快速发展的过程中,搜索这两个字是当今互联网业界最为流行的字眼之一,无论是国外的 google 还是国内的 baidu,无论从公司的市值还是实用度来看,它都是互联网界的佼佼者。在今后的生活中,人们对搜索引擎的需求会越来越大。
参考文献:
[1]Craig Walls.Spring实战(第3版)[M].北京:人民邮电出版社,2013.
[2]陈雄华,林开雄.Spring3.x企业应用开发实战[M].北京:电子工业出版社,2012.
作者简介:汪三淇(1995—),男,辽宁沈阳人,主要研究方向:计算机科学与技术。