摘要:网络教学资源服务对象包括教师、学生、社会培训者等,其对应多种学科、类别,资源数量较大,用户需要通过搜索获取所需的特定资源,因此如何提高资源搜索的性能和实用性就十分重要。文章主要针对网络教学资源的搜索性能、实用性进行搜索增强研究。
关键词:教学资源;搜索增强;性能;实用性
伴随着网络技术的不断发展,教育对教学资源建设的重视,为网络教学资源库的建设提供了契机。网络教学资源服务的对象包括:教师、学生、社会培训者等,其对应多种学科、类别,资源数量较大。用户对资源的需求不一样,需要通过搜索获取所需的特定资源,因此如何提高资源搜索的性能、实用性是网络教学资源库开发所需要解决的一个重要问题。本文主要针对网络教学资源搜索的性能、实用性进行增强研究。
1搜索性能增强策略研究
1.1使用索引提高搜索性能
索引是对列值进行排序的一种结构,正确地利用索引能够加快对数据表相应信息的访问[1]。索引虽然能够提高数据的检索性能,但是也提高了数据维护的成本。因此,要合理使用索引,在创建索引前,需要确定使用哪些列和要创建的索引类型。索引包括聚集索引和非聚集索引[2]。聚集索引适用于含有大量的不重复值的列、可用于范围值计算的列、结果集较大的查询及经常使用连接或分组的列,非聚集索引中键值逻辑顺序和物理顺序没有关系。将主键设置为聚集索引并非最佳方案,在教学资源库中资源编号是标记列且设为主键,会把资源编号设置成聚集索引。在实际应用中,并不会针对资源编号进行搜索,这就导致让资源编号作为聚集索引是不正确的选择。其次,资源编号都不相同,也不符合“很多数据不同值的列不应该设置聚合索引”的规则。下面以在1000万条数据量的资源信息表中查询近180天的资源信息速度为例(180天内的资源信息数据为30万条,数据通过程序生成,供测试使用),其分析如表1所示。表1索引设置与用时对比索引设置用时(毫秒)只在主键(资源编号)上设置聚集索引129652主键(资源编号)上设置聚集索引,日期上设置非聚集索引54128在发布日期(vDate)上建立聚集索引2446通过上述的数据分析,正确地建立聚集索引是十分有必要的。必须根据实际中的应用范围和数据本身的构成来确定聚集索引,而非固定使用默认的主键作为聚集索引。
1.2优化SQL语句提高搜索性能
数据库管理系统本身具备了一定的查询分析优化能力。在MSSQL中的“查询分析优化器”,会检测查询的各个组成部分,并判断要求扫描的组成部分是不是有用,如果某个组成部分能够作为一个扫描参数,则称该组成部分为可优化,并使用索引对所需数据进行快速获取。如果某个表达式不能满足扫描参数的条件,就不能控制扫描范围,“索引”对不符合扫描参数条件的表达式是起到作用的。因此,在SQL查询语句的编写过程,要注意where子句的优化,让“索引”的作用得以充分发挥,最大限度地提高搜索性能。在搜索过程对信息字段的获取要遵循“需要多少,提取多少”的准则[3],不要采用“select*”。字段提取的多少对速度的影响如表2所示。1.3自定义分页提高搜索性能在数据的查询过程中,若一次性将查询结果读出,当数据量较大时,势必需要消耗较多的读取时间,影响搜索结果的最终呈现速度。因此,在项目的实际开发中,可以应用自定义分页的形式提高搜索的性能,若将实现自定义分页的过程使用存储过程的方式来实现,充分利用存储过程的优点,搜索性能将会得到更进一步的提高。自定义分页每次查询只从查询结果中读出当前页所需的数据,以资源搜索结果为2000条数据,系统每页呈现20条数据为例,普通分页与自定义分页相比,如图1—2所示。通过图1—2可以看出,采用自定义分页,仅从数据表中读出当前页的20条,数据控件也不需要进行控件内分页,其性能在数据读取和数据呈现上都有良好的提升。
2搜索实用性增强策略研究
2.1纯粹模糊查询实现搜索的不足分析
纯粹模糊查询实现搜索指在搜索的过程中,仅将用户输入的关键字在数据的查询过程中,用数据库本身提供的模糊查询功能,与数据库表中的相关字段值进行匹配,并将匹配正确的值提取至搜索结果。其操作简单,但存在以下2点不足:(1)相关词无法匹配。相关词无法匹配造成搜索结果的部分性,是纯粹模糊查询的最大不足之处。(2)容错性低。由于未对输入的搜索关键词进行分析,一旦关键词中包含无用词或错别词时,将导致搜索结果零数据返回。通过上述分析,要解决相关词无法匹配和容错性低的两大不足,需要对搜索实用性增强进行研究。
2.2增强相关词匹配
相关词的界定很难由程序自动判断,因为相关词有客观构成,也有主观构成。如:电脑与计算机、computer为客观相关词,而电脑与微软、冯•诺依曼则为主观相关词。客观相关词为事实存在,为大多人所共知,而主观相关词需要在特定的条件下成立,人们通过“电脑”可以联系到软件巨头“微软公司”或计算机科学家“冯•诺依曼”,需要一定的知识延展性,甚至“电脑”可以延伸到“计算器”,不同的用户有不同的认识。因此,主观相关词具备一定的不确定性与抽象的特点。增强相关词匹配可通过增加相关词字段或建立相关词库的方法来实现。相关词的匹配涉及匹配的深度和广度,越全面、精准则其投入成本越高。增加相关词字段。指通过在数据表中增加“相关词”字段,当用户在添加信息时,输入与此信息的相关词。相关词的界定及输入由信息编辑者进行操作,采用增加相关词字段的方式来提高相关词匹配,其实现方式简单,操作过程也容易,但相关词的界定由编辑者确定,相关词的个人主观性较强。建立相关词库。指通过建立相关词库表,当用户输入搜索关键词时,系统自动在相关词库表中搜索其相关词,一并归入关键词中进行处理,对搜索的实用性有很大的提高。当用户输入搜索关键词时,系统将自动遍历搜关键词的相关词,达到相关词匹配的目的。建立相关词库的方式,其相关词并非由编辑者个人界定,而且相关词可以灵活调整,不断补充。因此,建立相关词库的方式更加全面、客观,但构建一个完善的相关词库需要较大的投入。增加相关词字段与建立相关词库两者各有优缺点,但两者并非对立。在一个系统中,可以同时采用这2种方式或者其中之一以增强搜索相关词匹配,提高搜索实用性。具体实施方案还需要考虑到实际需求和投入成本预算。
2.3增强搜索容错性
在搜索的过程中,用户对搜索关键词的输入具备不确定和冗长等特点。不确定主要指关键词的选词不确定和关键词的是否正确不确定,而冗长指用户输入的搜索关键词包含多余的信息。如果系统的搜索过程未对用户输入的搜索关键词进行分析和处理,那么,其搜索结果将有可能得不到用户所需要的数据。从搜索易用性与实用性的角度出发,搜索功能必须具备一定的容错性。要增强搜索的容错性,就需要解决搜索关键词的不确定与冗长的特点。将搜索关键词按一定的规则进行拆分,简称分词。将长词转化为短词,并舍去重复的部分,可以提高搜索相关词的匹配,降低长词中错词、别词的构成,从而提高搜索的容错性。分词搜索可以在一定程度上解决搜索的容错要求,提升搜索的功能与精确度。分词技术主要分为3种:(1)字符串匹配的分词方法。字符串匹配的分词又分为4种,分别是:正向最大匹配法、反向最大匹配法、最短路径匹配法、双向最大匹配法。(2)词义分词法。词义分词法根据机器语音进行分词判断,通过对句法、语义的分析,使用句法信息、语义信息进行分词。但词义分词法目前还不成熟,尚处于测试阶段。(3)统计分词法。统计分词法依据词组的统计,针对相邻的字出现的次数多少,认定词的重要程度,作为关键词的分词分隔符。盘古分词作为一种分词组件,大大降低了系统进行分词搜索的投入成本,避免重复造车的现象,非常方便应用在基于.NET技术进行开发的系统中。
3结语
通过对索引的合理利用、SQL语句的优化和自定义分页的使用,对搜索性能有良好的提升,融入盘古分词的强大功能,结合相关词匹配技术,能够提高搜索的实用性。本文从搜索性能与实用性两方面研究了搜索增强技术,并将其应用于学院的教学资源库建设中,虽然取得了一定的成效,但还需要继续努力。
[参考文献]
[1]张玉峰,袁方,湛燕,等.基于索引结构的关系数据库关键词检索[J].河北大学学报(自然科学版),2015(1):95-101.
[2]魏威,马国峰.基于索引的关系数据库查询优化[J].洛阳大学学报,2007(2):83-86.
[3]徐新静.SQL优化技术及应用[J].天津冶金,2011(2):25-27.
作者:叶文全 单位:闽北职业技术学院