企业网站静态页面生成与全文检索技术研究

2019-03-16 01:08李苑李明
中国管理信息化 2019年3期
关键词:全文检索

李苑 李明

[摘    要] 从企业网站中用户经常使用的信息浏览和信息检索两个需频繁读取数据库的功能入手,介绍了可有效降低数据库读取频率的静态页面生成技术和站内全文检索技术的原理和实现方式。

[关键词] 企业网站;静态页面生成;全文检索

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2019. 03. 053

[中图分类号] TP311    [文献标识码]  A      [文章编号]  1673 - 0194(2019)03- 0131- 03

0      引    言

企业网站是用户了解企业的一个重要窗口,它可为企业提供信息发布、产品宣传、数据采集以及电子商务等功能,成为企业与客户及供应商之间沟通交流的一个纽带[1]。但是,随着网站数据量和访问量的不断增加,频繁的数据库读写操作将耗费大量的服务器资源,给网站性能带来严重的影响,进而降低用户的体验。在Web服务器性能不变的情况下,为有效降低数据库的读写操作,可从用户访问量最频繁的信息浏览和信息检索两个方向入手,通过静态页面生成和站内全文检索技术的应用来提高网站的响应速度。

1      静态页面生成技术

在企业网站的开发过程中,为方便网站内容的日常维护,通常会采用动态网页技术。动态网页是以数据库技术为基础的一种网站开发技术,其URL后缀比较常见的有 aspx、jsp、php、asp等形式。近年来随着MVC技术的快速发展,“control/action/id”形式URL格式也比较普遍。动态网页在运行过程中,需将数据预先存储到数据库中,当客户通过浏览器向Web服务器发出HTTP请求时,服务器再根据请求执行相应的程序,从数据库中读取所需要的内容并填充到动态页面中,然后再将运行结果以HTML的格式传送至客户端浏览器,并解释和显示[2]。采用动态网页技术可以大大降低网站内容的维护成本,如果需要修改已发布网站内容,只需在管理页面修改相应的数据库字段内容即可。

企业网站发布的信息常常会有很大一部分发布出来后就很少出现更改的情况,如果采用动态页面技术,每请求一次就需要执行一次数据的查询和信息的转换操作,而每次操作都需要消耗一定的服务器的资源,对于访问量较大的网站来说,很容易出现服务器负担过重的情况。为解决这一问题,就出现了将动态网页转换为静态页面的技术,并在很多大型网站上得到了应用。静态页面扩展名为html或htm,页面存储的内容直接就是HTML格式的文件,不需要经过服务器的编译,直接根据请求将页面中的HTML代码传递到客户端的浏览器即可显示出来。因此,静态页面的访问速度比动态页面要快许多,而且,由于不需要像动态页面一样执行数据的查询和转换操作,所消耗的服务器资源也较低。但静态页面无法自动更新,如果某个静态页面的内容需要修改,只能在后台管理页面重新创建一次,故灵活性较差,也不便于控制其访问权限。因此,动态页面的静态化技术只适合于应用在不需要频繁对页面内容进行更新和权限控制的功能模块中,如企业网站中的新闻发布功能模块等。以下为.NET环境下一种将动态页面生成为静态页面的方法。

2      站内全文检索技术

随着企业网站各功能模块中信息量的逐渐增加,如何利用关键词快速地查找到所需信息也就成了网站要解决的关键问题之一。对于小型的企业网站来说,由于数据量不是太大,采用基于数据库的模糊检索方式就能满足要求,即根据用户输入的关键词构建“select * from tableName where title like ‘%keyword%”等类型的检索式即可从数据库中检索出满足条件的数据。但这种检索方式只适合检索结构化数据,无法对文本、图片等非结构化数据进行检索。而且,在使用like查询时,需要对数据库表格中相关字段的内容全部检索一次,在数据量较大的环境下,like查询对系统性能的影响是相当大的。如果是需要对多个关键词进行模糊匹配:like"%keyword1%" and like "%keyword2%",其检索效率将会成倍较低,所耗费的服务器资源也会成倍增加。

为解决传统数据检索方式存在的效率低下问题,以Lucene为代表的站内全文检索技术也就应运而生。Lucene 的检索过程实际上就是把模糊查询变成可以利用索引进行精确查询的过程[3],就如查字典,只需要从索引目录中找出所查字符的页码即可实现精确定位,不需要一页一页的去搜寻,极大地提升了数据检索的效率和准确性。全文检索的实现过程主要分为索引创建和搜索索引两个步骤。其中,索引创建就是将结构化数据和非结构化数据的特征信息提取出来并储存到创建好的索引库中;搜索索引就是根据用户需要查询的关键词,从索引库中搜索出满足条件的记录,然后将查询结果返回给用户。

索引库的建立是全文检索的关键技术点,假设某个文档集合里面有100篇文档,为了方便表示,将文档从1到100进行编号,每个编号代表一篇文档,然后将每篇文档的关键信息提取出来,得到下面的索引结构(见图1)。左边保存的是反映文档关键信息的一系列字符串,称为词典。每个字符串所指向的是包含此字符串的文档链表,这一文档链表称为倒排表。一篇文档可以拥有词典中的多个字符串。

当索引库建立起来后,就可通过从索引库中搜索相关的关键词来查找所需要的信息。

比如,如果我们要寻找既包含字符串“知识”又包含字符串“经济”的文档,只需要执行以下三步:①取出包含字符串“知识”的文档链表。②取出包含字符串“经济”的文档链表。③对以上两个文档链表进行合并,就可找出既包含“知识”又包含“经济”的文档为3、10、31这三篇文档。然后将这三篇文档的信息返回给用户即完成了检索(见图2)。

从以上全文检索的原理可以看出,全文检索中创建索引的过程只需一次,以后每次搜索数据的时候,只需从创建好的索引库中搜索相应的关键词就可以了,而且还可以根据相似度算法对检索结果进行排序,不必像数据库模糊查询一样重新遍历一次数据库中的全部数据。

3      结    语

对于访问量和数据量较大的企业网站来说,静态页面生成技术和站内全文检索技术的应用可有效提升网站的整体性能,为用户带来更好的使用体验。其中,静态页面生成主要是降低动态页面运行过程中不断进行数据库的查询和数据转换操作给服务器资源带来的不必要耗费,提高页面的响应速度。站内全文检索技术主要是解决了传统的基于数据库模糊查询而带来的问题,提升了数据检索的效率和准确性。

主要參考文献

[1]邓三鸿,杨建林,潘有能,等.企业门户网站中的数据挖掘研究[J]. 情报学报,2003,22(1):40-45.

[2]白金牛,李慧萍,王培吉. ASP.NET下利用动态网页技术生成静态HTML页面的方法[J]. 计算机应用与软件,2008,25(1):79-81.

[3]郎小伟,王申康.基于Lucene的全文检索系统研究与开发[J]. 计算机工程,2006,32(4):94-99.

猜你喜欢
全文检索
基于Lucene的全文检索的研究及实现
实名制校园安保服务平台的设计与实现
基于MySQL的中文全文搜索研究
Oracle数据库全文检索性能研究
基于Lucene的多种排序方式的实现
全文检索引擎Lucene系统模型与应用研究
全文检索引擎技术在电子病历中的应用
基于云计算的知识管理系统
基于双层PDF和Lucene技术的全文检索研究与实现
基于KySou的全文检索系统的分析与优化