|||
前言:
“聚焦搜索系统设计”的课题是涉及计算机网络、数据库、管理信息系统、JAVA语言程序设计等多门课程的具有强综合性的课题,对于巩固课堂所学、培养动手能力、调动创新精神、提高实际设计能力具有意义。我们从今年3月到6月,参加了中国软件杯第一题“聚焦搜索引擎”的竞赛,通过3个多月的学习与实践,完成了该设计,并且实际就聚焦搜索系统与精准搜索网站的设计进行了探索。我们准备逐步公开所设计的主要文档,希望能为课程设计、学生实习、毕业设计提供参考,更希望能得到强队、高手、专家们的批评与指导,促使该设计进一步完善与提高。
“中国软件杯”聚焦搜索系统设计总结报告
设计人单位:湖北工程大学工程技术学院
设计团队名称: 求新
1.作品编写目的
1.1 问题的提出
随着各种B2C、C2C、B2B的网站的成长和各种测评网站的建设。足不出户的网络购物已然成为大家生活中的一部分。但是随之而来想要从各种网站中找到最好、最划算的商品也非常困难。所以提供一个高质量的在线商品搜索平台无疑会为网络购物带来更好的未来。虽然用户可以通过Google、百度、Yahoo等通用搜索引擎,在海量的网络数据中取得一些信息。但是通用性搜索引擎也存在着一定的局限性,如:
1)不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的信息。
2)通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。
3)在考虑购买商品时,除了需要了解商品及商家自身的信息(我们以下称为商品横向信息)外,还希望能比较不同商家同一商品的信息(我们以下称之为商品纵向信息)。为了有效地进行比较,希望能针对商品的主要属性列表显示不同商家同一商品的信息,这实际是基于数据库的结构化信息。
聚焦搜索系统正是在以上背景之下提出来的,它旨在提高企业、个人用户对信息的利用能力,方便特定信息进行提取和分析,提高决策的正确性和及时性。
1.2 研究基础
我们于2005年研制成功“管理信息系统通用部件技术”,由湖北省教育厅组织鉴定达到世界先进水平。该技术允许只设置若干参数,调用通用部件库中的部件,就可针对任意数据表不编程构成数据维护、数据查询、数据打印、数据通信、数据控制等方面的实用模块,直接组建到系统中,不仅提高系统设计效率,实现规范化、标准化编程,而且具有高适应性,易学习、易扩展、易维护,在本课题中具有直接应用的价值。
我们于2008年为四川省经济委员会经济信息中心设计了《企业竞争情报信息系统》,该系统通过聚焦搜索寻求企业最需要的网络资源,经富集、去伪存真等处理后,再提交给用户使用。可以提高信息的价值、可靠性、精准性。其中网络爬虫、数据处理等部分程序可以直接移植到本系统中。需要进一步设计的内容是从非结构化数据(网页数据)中提取结构化数据(商品属性及值)的程序。
1.3 对题目的理解及设计思路
聚焦搜索系统通过搜索和下载要求只针对特定的信息和网站。需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。要求针对抓去的页面按照所需的信息进行分析、过滤,提取出有用的信息并建立相关索引。要求经在后续的分析过程中得出的信息作为后续的抓取过程的反馈和指导。
要针对目前各大网络购物平台的数据,设计一个聚焦于出售商品的网络爬虫,为网络用户的购物行为带来更友好的搜索和对比。最终让用户能用最快的时间找到最合适的商品,提高信息的使用能力和利用效率。
本系统难点问题包括网络搜索与特征搜索问题、合理的数据结构设计、具有高自适应性的数据维护与查询程序设计、数据清理与数据自动整合、外网搜索、语义分析、结构化数据与非结构化数据混合查询等。具体而言有如下内容。
1)能够在指定的网页入口中通过爬虫分析商品的基本属性,并保存相应数据信息。各个网站所陈列的商品在网页上表现是不同的(即网页的格式不同),要通过提供识别词或模板适应不同网站的格式。该问题可以直接借鉴我们在《企业竞争情报信息系统》中设计的程序实现。
2)题目要求设计统一的数据模型,不需要针对每种商品建立不同的存储表,就能描述各种类型商品的基本属性。题目要求模型有可扩展性,可以方便的在模型中添加商品属性,而不需要大量重构表结构。
其设计方法一是根据所选定商品属性的不同,自动为每一商品建立数据表,并设计具有自适应性的数据维护软件与查询程序对各商品数据进行处理。这个方案与题目要求吻合不好。特别是当商品数量很多时,数据维护与查询操作将出现不便;数据表过多不便管理;如果要对属性大体相同或相似的按大类查询或搜索进行横向、纵向比较都将不方便。这些会对全系统稳定性、安全性、扩展性产生不利影响。
我们考虑设计元数据表和素材库表这样二个数据表(结构见表4与表5),元数据表中存放各种商品属性名称与特性,素材库表采用统一的字段名存放所有商品的属性值,字段名的实际意义根据商品类型及该类型商品在元数据表中登记的相关联的属性名而定。
这样形成的商品数据结构实际是变长数据表结构,缺点是存在比较严重的数据冗余与存储空间的浪费,但在目前计算机与数据库存储容量特高、速度极快的情况下,这些问题不是严重问题。该设计能完全满足题目上述二个要求,但要求关于该数据表的数据维护、查询程序具有良好的自适应性,可以借鉴我们的通用软部件技术实现。该技术将使得本系统程序模块数量大大减少,便于设计与维护,提高工作效率;使得系统规范化、标准化程度提高;使得系统可扩展性、可维护性加强;使得本系统正确性得以加强。实际上,本系统只使用“单记录界面单表数据维护部件”、“表格式界面单表数据维护部件”、“组合查询部件”、“文本查询部件”四个程序就能满足全系统所有10个数据表的根据不同需要与条件进行的数据录入、数据维护、数据查询的需求,系统显得简洁、清晰,提高了系统可靠性、稳定性与可维护性。
3)对本题进一步分析,本题直接要求的是保存商品的不同属性值的数据,需要实现从非结构化的网页形式的数据提取结构化的数据表形式数据并转存到数据库中,要方便用户对不同厂家(网站)提供的数据进行比较与选择,其表现形式以表格为好。但从实际应用需要分析,最好还能包括原有网页的非结构化数据,使能提供给用户以更多的供其决策的信息。本设计在素材库中加设“网页内容”字段,其类型为Text,保存所提取数据的网页完整文本内容。
对网页的文本内容要能如同公共搜索引擎一样组织查询,使适应用户的使用习惯。具体而言是用户可以在一行内输入存在一定逻辑关系的多个关键字(如果是多个关键字,其中一个关键字必须含有小类名(即商品名),其他的可以是商品的任意属性或网页中其他字词),系统要具有对用户输入条件进行语义分析的功能。解决办法是建立一个查询关键字库,系统要能根据该库数据对用户提出的语义进行逻辑结构分析并变成查询条件字。
鉴于本系统当前规模不大,关键字库的建设可以采取自学习方法实现。首先,不断将系统中搜索后得到的大类名、小类名、元数据名及各种短小属性值列入关键字库中,再分析各个用户日常查询中出现的词汇,如果是新词,就补列入其中。这样得到的关键字库小、针对性强、避免查询结果动辄数万或更多的情况发生。
4)本系统主要在小型系统中实现,因此希望提高搜索速度。一方面对环境、对网速有要求,网速高时,爬的速度快;网速低时爬的速度慢。另一方面,要求通过合理的设计提高查询速度,我们考虑实现方法主要有:(1)分级分组管理数据,可以设计大类表、小类表对商品分类进行数据提取并管理。(2)建立索引。(3)在关键字表中加设字段:序号集。对每一个关键字存放相匹配的所有商品记录的序号,如果用户搜索时提交的关键字在关键字表中,可以先通过序号集进行求交集或并集的运算,再显示结果。代替在网页中全文比对,可以大大提高查询速度。
5)题目要求利用商家其他信息指定搜索策略,如部分商家的信誉等级较高(皇冠)、商品出货量较大,则认为该商家的商品信息较为可信,提高该商家的所有商品信息的爬取等级,重点爬取。反之如果一个商家评价较差、且几乎没有更新、没有成交,则认为商家的商品信息可信度不高,降低该商家等级,遇到该商家的URL可以放弃。
根据对大量网页的分析,发现许多网页上难以提取具体“更新”的时间信息,也极少提取到商品出货信息。
本设计在数据库中存放各网页关键信息,通过定期重复扫描这些网站,取其关键信息与数据库中保存的信息比对,将扫描进行时的时间作为那些内容有变化的网页的更新时间保存。基本能满足题目在这一方面的要求。
可以提供用户反馈意见的界面,根据用户反馈意见内容分析得到商品出货信息。为了鼓励用户反馈意见同时又兼顾反馈意见的真实性,考虑将用户分为一般用户(游客)与金牌用户(注册且经验证确认的用户),他们反馈的意见将具有不同权重。为实现本功能,需要设计用户注册程序与用户身份验证程序,程序包括手机短信确认与Email邮箱确认。设计时要注意:(1)邮箱的ajax验证,保证新注册的邮箱重未被注册。(2)规定密码长度不低于6位,保证安全可靠。(3)要求用户注册验证码输入。
6)从实际运行中发现,搜索的的深度太深时效率很低,本系统设计要求有一定实时性,要对搜索的的深度进行限制,本系统暂定为10,可手动改变深度值。
7)数据的自动清理与自动整合问题。本系统在定向搜索时,为提高效率,将根据特征自动搜索特定商品的属性名并存放到元数据表中,相应属性值放到素材库中。由于这个过程完全是自动的,无法适应不同网站、不同商品的情况,必须于事后进行数据整理、数据清洗与数据整合操作。
由于不同网站对同一商品同样属性的命名可能不同,存在同义异名与同名异义问题,要求实现数据的自动清理与自动整合,对具有相同意义的属性要自动的合并为一个属性。
对于同名异义问题要提供元数据表的数据维护程序,手工修改属性名以区分不同意义的属性。
对同义异名问题要修改使字段名相同,此时一是要在修改属性名后保证其属性名与属性值有可靠的对应关系,不能错位。其二是保证在之后搜索数据及数据查询时能根据原属性名查到相关数据。为此,在元数据表中加设别名字段,在更名同时,将原用名加到别名表内容末尾(用逗号区分不同的别名),在新数据录入与查询时都先根据别名进行处理,在别名表中能查到的按相应记录的字段名处理,否则,表示为新的属性添加到元数据表中。
本系统素材库初步设计为每一个产品最多预备有60个属性(根据需要可以增加,由于本系统采用了部件技术,这样的增加不要求改变系统的程序设计),前5个属性是所有产品固有的,另外55个属性,根据不同的产品有不同属性名,在素材库中统一用A1、A2、……A55字段名命名并实现数据存储(见表5)。
为方便推广应用,本系统所有的字段名都采用英文名字,但对中国人或其他非英、美语言圈国家的用户,习惯使然,必须提供使用人本国的语言界面,例如对我国使用人,对具体的小商品名的查找,所有显示的属性名要有具体的中文名。本系统采用部件技术,统一设计字典表,将所有实际字段名与译名集中存放在字典表中,部件将根据字典表自动进行翻译处理。用户只需要维护字典表就可轻易解决界面翻译问题。
8)外网查询
本题要求能够在指定的网页入口中通过爬虫分析商品的有效信息,并保存相应数据信息。实践发现,要求普通用户指定网页入口存在困难,而且,从随意一个入口去搜索所有目标商品的信息,犹入大海捞针,而且是见到海边一块礁石就往下跳去捞。希望入口地址应当有一个科学的确定。但本系统是小系统,没有那样多的服务器以及数据准备时间,本系统拟借百度、谷歌等公共搜索引擎先进行搜索(当然先得获得相关搜索引擎的许可),从搜索到的页面提取适量且相符合的链接地址,实现第一次聚焦。本系统具体选定的是借百度进行初步的搜索,只要修改地址就可以改成其他搜索引擎。本设计自动向百度查询字输入界面输入关键字,再运行百度搜索程序,对其搜索结果取20个网站,再以这20个地址为入口进行搜索,目标更精准、效率更高、查全率提高、实用价值更大。
9)远程查询
本系统最终意义是建成为一般用户需要的精准网络搜索系统,为此需要设计远程数据查询与远程用户意见处理系统。本作品设计了资源库,其内存放经清理与整合后素材库中的数据;设计了远程查询程序,可以用数据库查询语句对资源库中数据进行查询,也可以用公共搜索引擎查询方式对资源库中网页文本数据进行查询。对于后者,设计了语义分析程序,根据关键字对用户查询内容进行比对后形成查询条件再进行查询。输出内容可以为表格形式,实现商品的纵向比较;也可以是单记录表单形式,可以完整显示一条记录全部信息,实现商品横向比较。也可以同时包括结构化数据与非结构化数据,提供给用户更全面的信息。
在远程系统中还提供用户注册、用户论证、意见反馈等程序及关键字自学习系统。
1.4 系统数据库结构设计
数据库名称:d_ d_fose 。数据库中数据表结构如表1到表10所示。
为提高查询速度,也为了对那些属性大体相似的多种商品进行搜索与比较,我们将商品分成大类、小类。小类实际代表具有相同属性结构的商品,小类表是商品的代码表(如表2所示)。按属性的相似或用途相近将多个小类合并为大类,大类表是大类的代码表(如表1所示)。
表1、b_class (大类表)
序号 |
字段名 |
类型 |
宽度 |
意义 |
1 |
b_code |
varchar(10) |
10 |
大类代码 |
2 |
b_name |
varchar(30) |
30 |
大类名称 |
|
|
|
|
|
表2、s_class (小类表)
序号 |
字段名 |
类型 |
宽度 |
意义 |
1 |
s_code |
varchar(10) |
10 |
小类代码 |
2 |
b_code |
varchar(10) |
10 |
大类代码 |
3 |
s_name |
varchar(30) |
30 |
小类名称 |
4 |
s_field |
varchar(200) |
200 |
小类别名 |
|
|
|
|
|
为了分析各网业更新时间、数据价值特性、方便重复搜索,有必要将新搜索到的网页地址及其特征数据保存起来,故设计了“网络地址表”如表3所示。
表3、t_url (网络地址表)
序号 |
字段名 |
类型 |
宽度 |
意义 |
1 |
ID |
bigint |
|
序号 |
2 |
net_address |
varchar(600) |
600 |
网络地址 |
3 |
company |
varchar(30) |
30 |
公司名称 |
4 |
search_time |
datetime |
|
上次搜索时间 |
5 |
update_time |
datetime |
|
上次更新时间 |
6 |
active |
varchar(50) |
50 |
可用性 |
7 |
website |
varchar(50) |
50 |
网站名称 |
8 |
paramsString |
varchar(1600) |
1600 |
特征记录数据(用于更新时间分析) |
9 |
scode |
varchar(50) |
50 |
小类代码 |
|
|
|
|
|
为了良好的扩展性与适应性,也为了系统开发的简易性与易使用、易维护性,我们将各种不同商品的数据放在同一个素材表中保存。那么,同一字段名对于不同商品将具有不同的意义,代表不同属性。例如素材库中A1对于电脑可能存放的是CPU的值,代表处理器属性;而对于衣服,可能存放的是面料的数据,代表使用材料属性等。为了区分不同商品的属性,设计了元数据表,记录素材库中每一个字段对于不同商品所代表的属性意义。(见表4)
表4、s_date (元数据表)
序号 |
字段名 |
类型 |
宽度 |
意义 |
1 |
ID |
bigint |
|
序号 |
2 |
p_code |
varchar(10) |
10 |
产品代码 |
3 |
field_name |
varchar(30) |
30 |
字段名 |
4 |
d_field |
varchar(200) |
200 |
字段别名 |
5 |
width |
int |
|
宽度 |
|
|
|
|
|
我们将各种不同商品的数据放在同一个素材表中保存。那么,同一字段名对于不同商品将具有不同的意义,在素材库中表现为一系列不变的字段名,为简单计,本设计中直接用A1、A2、A3……命名(见表5)。
表5、material_lib (素材库)
序号 |
字段名 |
类型 |
宽度 |
意义 |
1 |
ID |
bigint |
|
序号 |
2 |
p_code |
varchar(10) |
10 |
产品代码 |
3 |
a1 |
varchar(100) |
100 |
第1字段内容 |
4 |
a2 |
varchar(100) |
100 |
第2字段内容 |
5 |
a3 |
varchar(100) |
100 |
第3字段内容 |
6 |
a4 |
varchar(100) |
100 |
第4字段内容 |
7 |
a5 |
varchar(100) |
100 |
第5字段内容 |
8 |
a6 |
varchar(30) |
30 |
第6字段内容 |
9 |
a7 |
varchar(30) |
30 |
第7字段内容 |
10 |
a8 |
varchar(30) |
30 |
第8字段内容 |
11 |
a9 |
varchar(30) |
30 |
第9字段内容 |
12 |
a10 |
varchar(30) |
30 |
第10字段内容 |
13 |
a11 |
varchar(30) |
30 |
第11字段内容 |
14 |
a12 |
varchar(30) |
30 |
第12字段内容 |
15 |
a13 |
varchar(30) |
30 |
第13字段内容 |
16 |
a14 |
varchar(30) |
30 |
第14字段内容 |
17 |
a15 |
varchar(30) |
30 |
第15字段内容 |
18 |
a16 |
varchar(30) |
30 |
第16字段内容 |
19 |
a17 |
varchar(30) |
30 |
第17字段内容 |
20 |
a18 |
varchar(30) |
30 |
第18字段内容 |
21 |
a19 |
varchar(30) |
30 |
第19字段内容 |
22 |
a20 |
varchar(30) |
30 |
第20字段内容 |
23 |
a21 |
varchar(30) |
30 |
第21字段内容 |
24 |
a22 |
varchar(30) |
30 |
第22字段内容 |
25 |
a23 |
varchar(30) |
30 |
第23字段内容 |
…… |
…… |
…… |
…… |
…… |
53 |
a51 |
varchar(30) |
30 |
第51字段内容 |
54 |
netaddress |
varchar(600) |
600 |
网页地址 |
55 |
contenthtml |
text |
|
网页完整内容 |
56 |
s_code |
varchar(50) |
50 |
小类号 |
|
|
|
|
|
本设计考虑的操作者包括系统管理员、数据录入员、系统客户等,为了提高系统对于客户的价值,有必要向搜索客户提供关于商品的反馈信息,为了尽可能多地获取不同类型用户的反馈信息,我们将用户分成金牌用户与游客二类,前者要求提供准确的个人信息,并且交由本系统验证,其反馈信息较一般游客具有更大的参考价值。用户表用于保存系统管理与操作人员及金牌用户的信息(见表6)。
表6、t_user (用户表)
序号 |
字段名 |
类型 |
宽度 |
意义 |
1 |
id |
int |
|
序号 |
2 |
username |
varchar(30) |
30 |
用户名 |
3 |
userpwd |
varchar(30) |
30 |
用户密码 |
4 |
usergroup |
varchar(30) |
30 |
用户组号 |
5 |
|
|
|
邮箱 |
6 |
usergroup |
|
|
用户组 |
7 |
is_email_verify_code |
|
|
是否邮箱 |
8 |
email_verify_code |
|
|
邮箱验证码 |
9 |
last_login_time |
|
|
上次登录时间 |
10 |
Last_login_ip |
|
|
上次登录ip |
|
|
|
|
|
设计搜索引擎不是目的,建立精准搜索网站才是最终目的,为此,我们设计了资源库,向远程用户提供商品信息。资源库数据是对素材库数据进行清洗、整合、校对后更准确、更具有价值的数据。其结构与素材库大体一致(见表7)。
表7、resources_lib (资源库)
序号 |
字段名 |
类型 |
宽度 |
意义 |
1 |
ID |
bigint |
|
序号 |
2 |
p_code |
varchar(10) |
10 |
产品代码 |
3 |
a1 |
varchar(100) |
100 |
第1字段内容 |
4 |
a2 |
varchar(100) |
100 |
第2字段内容 |
5 |
a3 |
varchar(100) |
100 |
第3字段内容 |
6 |
a4 |
varchar(100) |
100 |
第4字段内容 |
7 |
a5 |
varchar(100) |
100 |
第5字段内容 |
8 |
a6 |
varchar(30) |
30 |
第6字段内容 |
9 |
a7 |
varchar(30) |
30 |
第7字段内容 |
10 |
a8 |
varchar(30) |
30 |
第8字段内容 |
11 |
a9 |
varchar(30) |
30 |
第9字段内容 |
12 |
a10 |
varchar(30) |
30 |
第10字段内容 |
13 |
a11 |
varchar(30) |
30 |
第11字段内容 |
14 |
a12 |
varchar(30) |
30 |
第12字段内容 |
15 |
a13 |
varchar(30) |
30 |
第13字段内容 |
16 |
a14 |
varchar(30) |
30 |
第14字段内容 |
17 |
a15 |
varchar(30) |
30 |
第15字段内容 |
18 |
a16 |
varchar(30) |
30 |
第16字段内容 |
19 |
a17 |
varchar(30) |
30 |
第17字段内容 |
20 |
a18 |
varchar(30) |
30 |
第18字段内容 |
21 |
a19 |
varchar(30) |
30 |
第19字段内容 |
22 |
a20 |
varchar(30) |
30 |
第20字段内容 |
23 |
a21 |
varchar(30) |
30 |
第21字段内容 |
24 |
a22 |
varchar(30) |
30 |
第22字段内容 |
25 |
a23 |
varchar(30) |
30 |
第23字段内容 |
…… |
…… |
…… |
…… |
…… |
53 |
a51 |
varchar(30) |
30 |
第51字段内容 |
54 |
netaddress |
varchar(600) |
600 |
网页地址 |
55 |
contenthtml |
text |
|
网页完整内容 |
56 |
s_code |
varchar(50) |
50 |
小类号 |
57 |
critique |
text |
|
评价意见 |
58 |
critiquenum |
int |
|
访问人数 |
|
|
|
|
|
由于本系统采用了元数据表这样的设计,也因为本系统所有数据表名、字段名都采用英文单词命名,在进行数据维护、查询时,面向我国用户,要求采用中文名及实际属性名,也为了本系统通用数据维护、查询软部件的需要,设计了统一的字典表(见表8)。
表8、dataDir (字典表)
序号 |
字段名 |
类型 |
宽度 |
意义 |
1 |
field_name |
varchar(30) |
30 |
字段名称 |
2 |
field_mean |
varchar(40) |
40 |
翻译译文 |
|
|
|
|
|
在全文中查找字符串是十分费时的操作。为了提高查询速度,可以事先将用户常常查询的关键字所对应的序号的集合保存起来,在查询时通过求集合的交集或并集,找到序号,再取出记录,比较字符串搜索效率可以提高。其结构件表9。
表9、keywords (关键字表)
序号 |
字段名 |
类型 |
宽度 |
意义 |
1 |
id |
int |
|
序号 |
2 |
keyword |
varchar(50) |
50 |
关键字 |
3 |
ids |
text |
|
在资源表出现序号集 |
|
|
|
|
|
为方便用户重复查找,设计了用户浏览记录表。该表也可以用来分析用户特别关注的问题。见表10。
表10、t_search (用户浏览记录表)
序号 |
字段名 |
类型 |
宽度 |
意义 |
1 |
id |
int |
|
序号 |
2 |
username |
varchar(50) |
50 |
用户号 |
3 |
userpwd |
varchar(50) |
50 |
搜索内容 |
4 |
usergroup |
varchar(50) |
50 |
搜索时间 |
|
|
|
|
|
1.5 系统模块结构设计
1.系统划分
本系统分为两部分,一个为web远程查询系统,准备将来扩展建设精准搜索网站,负责远程查询资源库中数据,进行用户登记,记录用户操作的关键字,采用struts做显示层。
另一个是网络搜索与本地数据管理系统,负责后台应用,包括网络爬虫与数据库的增加、删除、修改、查询等常用操作,查询包括结构化的数据查询与非结构化数据查询,网络爬虫部分实现外网/内网数据的爬取。
2.模块简表
表1 系统模块划分
模块列表 | |
模块编号 |
模块名称 |
user |
系统管理模块 |
NetSearch |
网络搜索模块 |
DataMaintain |
元数据表维护模块 |
SWMaterialib |
素材库维护模块 |
UserManagerModule |
资源库维护模块 |
outernet |
外网查询模块 |
tableView |
表单视图查询模块 |
assisstence |
帮助模块 |
表2 各模块功能设计
模块功能一览表 | |
系统管理模块 | |
功能名称 |
功能描述 |
用户预览 |
用于查看数据库里面的所有用户,及相应的操作 |
大类商品预览 |
大类商品指具有类似属性、相似领域的商品。本模块用于查看数据库里面的所有大类商品,及相应的操作 |
小类商品预览 |
小类商品指具有相同属性的商品。本模块用于查看数据库里面的所有小类商品,及相应的操作 |
网络地址预览 |
用于查看数据库里面的所有过往搜索查询得到的网络地址,及相应的操作 |
|
|
网络搜索模块 |
|
功能名称 |
功能描述 |
小类商品(关键字) |
提供所有可用的小类商品(关键字) |
网页内容爬取及整合,存储 |
根据操作提示得到网络地址及相应的关键字,深度,进行网页内容爬取,数据整合,存储以及更新 |
|
|
元数据表维护模块 |
|
功能名称 功能描述 | |
数据展示、编辑 |
元数据表保存每一小类商品的所有属性名,数据宽度,为数据维护、使用与查询界面提供服务。本模块对元数据表的内容进行查看以及编辑 |
数据查询 |
提供多种数据查询方式,比如:关键字查询、网络地址查询、模糊查找等方式。 |
|
|
关键字表维护模块 |
|
功能名称 |
功能描述 |
关键字初始化 |
关键字用于语义分析且对提高查询效率具有意义。关键字最先存放所有大类名、小类名;元数据名、素材库中所有内容长度小于30的所有字段值,要求内容无重复。 |
关键字对应记录号生成 |
为有利于提高查询速度,有必要在每一条关键字的记录中记载该关键字出现在资源库中那些记录的网页内容中,将这些记录的序号集合存到关键字表中。将来,对网页内容查找时,如果查找内容是关键字,则可以直接提取序号集合集,进行并或交的运算,之后再取网页内容。 |
关键字维护 |
对关键字表数据进行维护操作 |
|
|
字典表维护模块 |
|
功能名称 |
功能描述 |
字典表维护 |
不同商品的属性名与属性数量不相同;本系统所有字段都用英文词汇命名,为自动适应有关界面的需要,按照软部件技术建立字典表,实现字段名与界面标签(提示内容)等的对应。本程序用于对字典表维护操作。 |
|
|
素材库维护模块 |
|
功能名称 |
功能描述 |
数据展示、编辑 |
素材库提供对直接爬取数据的存储。本模块用于对素材库表的内容进行表格式界面的查看以及编辑。有利于数据对比。 |
切换表单视图 |
本模块用于对素材库表的内容进行单记录表单式界面的查看以及维护操作。允许用户选择部分字段任意形成维护与查询界面。有利于数据维护操作。 |
转存到资源库 |
考虑到将来精准搜索网站的需要,有必要向用户提供更为精准的信息。本模块通过对数据清洗、整合后将素材库里面的有效资源转存到资源库,供远程查询使用。 |
合并属性 |
提供自动化数据整合模块。实现素材库里面的异名同意属性的合并。 |
浏览器打开 |
用于使用浏览器打开所选行的网络地址,方便查看 |
数据查询 |
提供多种数据查询方式,比如:关键字查询,网络地址查询,模糊查找、组合查询、语义分析式查询等方式。 |
网页更新情况搜集模块 |
对已搜索网页进行内容检查,与所记录的内容对比,如果内容已经更新,将当前系统时间记录为该网站内容更新时间 |
统计分析 |
对包含有单价、购买数量、访问数量的数据进行柱面图式或饼图式的对比。 |
|
|
资源库维护模块 |
|
功能名称 |
功能描述 |
数据展示、编辑 |
用于对资源库表的内容进行表格式界面显示以及编辑。有利于数据对比。 |
切换表单视图 |
提供单记录表单式界面的显示以及维护操作。允许用户选择部分字段任意形成维护与查询界面。有利于数据维护操作。 |
浏览器打开 |
用于使用浏览器打开所选行的网络地址,方便查看 |
数据查询 |
提供多种数据查询方式,比如:关键字查询,网络地址查询,模糊查找、语义分析式查询等方式。 |
|
|
外网搜索与远程查询模块 |
|
功能名称 功能描述 | |
关键字管理 |
建立初始关键字表,对关键字表进行数据维护操作。 |
网页内容爬取及整合,存储 |
向公共网络搜索引擎输入搜索内容,借公共网络搜索引擎的功能进行网络搜索,获取前20个网站地址(数量可设)作为本系统网络搜索的入口地址,后期网络搜索、数据整合,转存,更新全部自动完成。(本功能必须获得所借用的公共网络搜索引擎的许可,否则如果发生侵权而导致的后果本系统全不负责) |
|
|
表单式查询模块 |
|
功能名称 功能描述 | |
轻量数据表单查询 |
对所有提供的轻量数据库表进行单记录表单式显示与维护。操作时用户先选取数据表名,之后进入自动生成的维护界面操作。 |
大型数据表单查询 |
对素材表、资源表进行单记录表单式显示与维护。操作时要求先输入关键字(品名),将根据元数据表记录的该商品属性的个数及属性名称自动生成中文标签的显示与维护界面,具有记录定位、数据录入、数据修改、数据删除、等值查询、条件查询、索引显示等功能。 |
|
|
帮助模块 |
|
功能名称 功能描述 | |
聚焦搜索系统介绍 |
介绍聚焦搜索系统 |
功能介绍 |
对聚焦搜索系统的功能进行介绍 |
使用意见反馈 |
会将用户对软件的意见发送到指定邮箱。 |
技术支持|版本信息 |
显示版本信息以及技术支持 |
3. 网络搜索与本地数据管理系统模块功能设计
网络搜索与本地数据管理系统结构如图1所示。系统运行流程如图2所示。
图1:系统结构图
图2 系统运行流程图
整个系统结构分为7个部分,各部分相互联系,构成一个结构紧密的整体。各部分之间通过接口相互交流信息,关键字管理模块创建搜索关键字,并将其传给搜索任务管理模块,搜索任务管理模块创建搜索任务,再将其下发给搜索控制模块。搜索引擎模块负责系统与外界网络的接口,安全管理模块则负责整个系统执行的安全性问题。
1)登陆验证
用户登录程序模块用于程序登录,提供系统管理员、高级用户和普通用户登录服务,程序流程如图3所示。普通用户(游客)登录后只能浏览数据及发表一般性留言。
图3 用户登录流程图
2)系统管理员操作模块
用于查看数据库里面的所有用户信息,及相应的操作输入系统公共数据,如图4所示。
(1)大类管理
大类指商品使用与属性大致相同的商品类型。大类管理模块用于查看数据库里面的所有大类商品信息,及相应的操作:输入数据、数据维护与查询。
(2)小类管理
小类指商品属性相同,用途相同的商品类型。小类管理模块用于查看数据库里面的所有小类商品信息,及相应的操作:输入数据、数据维护与查询。
(3)网络地址管理
用于查看数据库里面的所有网络地址信息,及相应的操作:输入数据、数据维护与查询。
3)网络搜索模块
(1)功能描述
网络搜索模块用于与互联网络进行连接,它负责从网络上各网站,(如:淘宝,京东,zol等)爬取数据,并进行分析,找出指定商品结构化信息的数据,进行存储以及更新等处理。
(2)处理流程如图5所示
4)元数据维护管理
5)素材库维护管理
功能:素材库表存放的所有爬取的产品的原始产品信息,这里爬取出来的信息往往比较散乱,提供了关键字查询,产品代码查询,模糊查找以及网络地址查询等常见查找方式,亦有表单查询视图,转存资源库,以及产品数据属性合并,对数据的网络地址启用自设计浏览器打开网页内容等功能。
6)资源库维护管理
功能:资源库管理是将素材库里面的数据进行进一步的整理,除了对数据库里面的内容进行全部的数据的更新以及修改删除,还可以添加评论,和以柱面图查看商品热度。
7)大类库管理
功能:查看数据库里面的所有大类商品代码,及相应的操作输入数据
8)小类库维护管理
功能:查看数据库里面的所有小类商品代码,及相应的操作输入数据。
9)网络地址库维护管理
功能:对搜索到的目标信息所存放的网页地址(这些地址在搜索过程中自动保存在网络地址库中,同时随商品信息一起存放到素材库中)进行维护操行。情报源文件都保存在各个网站的服务器上,显示的格式各不相同,本系统在过滤掉非目标信息如不包括结构化信息的网页、存在冗余信息如广告,弹出窗口等信息网页后,将搜索到的目标信息存放的网站地址存放在网络地址库中,在进行新的搜索时可避免重复搜索,在分析网站更新情况时,直接提供这些网页地址,可以快速进行网络是否更新的判断。
10)外网搜索模块
外网搜索是网络搜索模块的一个补充,利用常用的搜索引擎(百度,谷歌)进行外网搜索,相对于本系统全网络搜索更智能化,用户只需要指定关键字,系统会自动根据百度、谷歌提取搜索地址,然后对这些地址进行爬取,以这些地址为入口进行深层次爬取,在全过程中会对数据进行边爬边存。
11)表单式查询功能模块
功能:表单式查询是对以前的所有查询的一个补充,利用软部件实现单记录表单式维护与查询界面,能更加人性化的展示数据,对数据进行查询、维护、索引,也可以转为对多条记录的表格式浏览。
12)帮助模块
功能:待搜索网址由用户需要进行搜索的网站的域名和IP地址组成,包括单独网站、网站群组、所有网站三种形态,其地址选择范围为公网和内部网。待搜索网址设置功能将待搜索网址按照特定的规则组织起来,提供给搜索任务维护功能使用。
本模块提供给用户以帮助功能,介绍系统结构与使用方法、版本信息等。
1) 用户登录模块
用户登录模块提供用户登录界面,展示用户的基本信息,展示用户的历史查询信息(游客没有历史查询记录信息)。
登录过程验证此用户是否为实名验证用户,若不是,则提示可进行实名验证。
2) 用户注册模块
本系统用户包括:系统管理员,负责全系统软件系统管理与维护,系统公共数据管理与维护。
数据操作员,负责对素材库数据到资源库数据维护、加工。
金牌会员,经注册并做身份论证核实后的用户,具有对商品进行加权评价的权力。
一般会员,一般用户,具有查询信息与一般性评价商品的权力。
本模块程序包括:
用户信息维护模块,包括ID,用户名,密码,邮箱等信息录入、修改、删除。
用户注册模块
金牌用户注册与手机确认或邮箱确认程序模块
3)查询模块
(1)分类查询
将小类中的关键信息分区域展示到主页面的左侧,用户点击每一个小类关键字信息,系统到资源库中查询数据,将信息以列表的形式显示到页面上。
(2)组合查询
例如用户查找“300元到500元之间的儿童手机”
经过关键字匹配找到要求是包含“儿童”与“手机”,同时单价<=500 and单价>=300。查找时先根据关键字找包含有“儿童”字样的资源库中的记录的序号的集合“1,5,6,10,101,”和包含有“手机”“3,5,10,23,” 字样的资源库中的记录的序号的集合的交集,再在资源库中找相应记录,判断其单价是否满足要求。如果满足要求,将该记录列入结果集提交给用户显示。
(3)网页内容查询
提供一个类似Google或百度的文本查询界面,提供经过本系统针对性的搜索存放在资源库中的网页,用户全文查询(搜索)。
查询词由用户输入,用“空格”表示“并且”、“|”表示“或者”; “!”表示“否则”,允许使用“括号”。
例如,用户输入:手机 儿童 <500元 >300元 !>700
应解析出查询条件:((网页内容 like “%手机%”) and ((网页内容 like “%儿童%”)and (单价<500) and (单价>300)and (!(单价>700))再组织查询
4)用户评论模块
一般用户可以提供反馈信息,例如包括:对本条信息准确性是否满意(满意、不满意、空);对本商品是否满意(性价比高、价格太高、质量差、服务好、服务不好;可以多选,但不能自相矛盾)。准备购买数量;已经购买数量(考虑到保护隐私,可以不准确填写,可以只填数量级,例如0、1、2、5、5-10、10、10以上、100以上……。要求设计远程输入反馈意见的程序。
将用户信息以一个用户一条的形式组织成文本存入资源库的反馈信息字段中,其内容为累加形式,即每一新的反馈留言来到后,将反馈的所有内容形成一句话,后面加回车、换行符后添加到已有文本的后面,但形成一条语句时要科学分隔(例如用二个中文空格进行分隔),使将来取出时可以还原成反馈意见的列表,可以以表格形式向查询用户反馈表格形式的反馈信息;也可以对反馈留言进行分析处理,对于那些恶意留言的形成黑名单,拒绝其再次留言;还可以对购买数量进行数量级级别的不太精确的数字统计。
(5)用户查询历史记录模块
将当前用户的查询条件保存到数据库,以便用户下次登录后也可以看到自己的查询内容。
2 使用价值
2.1 系统完成情况及特色
系统已经按设计要求如期完成。
1)建立了统一的元数据表与素材库存储数据,不需要针对每种商品建立不同的存储表。
2)模型具有可扩展性,只需要修改元数据表中的字段记录,就可以方便的在素材库中添加商品属性,不需要大量重构表结构。
3)由于数据模型简单,再通过保存已搜索网页地址、分级分组管理数据、自定义搜索深度、外网搜索等提高数据存取效率。
4)设计了关键字表并可以通过相关联记录序号集求取交集或并集之后,查询记录,提高数据查询的速度。
5)能够在指定的网页入口中通过爬虫准确找到网页中的属性信息,并保存相应数据,做到准确分析。
6)通过根据网络地址表定期核查已经搜索过网页,分析其更新情况;通过定义游客与金牌用户等二种用户,可以搜集用户反馈信息,分析商家出货情况,可以指定搜索策略。
7)可以根据关键字搜索商品信息,提供商品表格式展示界面,方便对不同商家商品信息进行纵向比较。
8)可以根据关键字搜索商品信息,提供商品单记录表单式展示界面,方便对商品信息进行横向分析。特别是可以同时显示网页完整内容,实现结构化数据与非结构化数据混合查询与显示,给用户以尽可能多的决策参考信息。展示方式新颖。
9)可以展示商品价格、评价等信息。
提供商品的横向、纵向关联信息展示(可选),如:搜索HP EliteBook 6930P笔记本电脑,可以将相似属性(与该商品相同的价格区间、品牌、配置等信息)进行扩展展示。要求展示方式新颖、直观。
10)采用统一的数据维护部件与查询部件实现按元数据表对素材库、资源库的维护、查询操作,程序量少,系统标准化好,便于系统维护与扩展,适应性大大提高。
11)通过修改元数据表中字段别名,实现自动数据清理与整合。
12)实现了自学习式关键字管理,初步设计了根据关键字表进行语义分析的程序。
13)设计了远程查询系统,提高了系统实用价值。
2.2 系统使用价值
本系统可用于精准数据搜索系统或网站设计参考,具体程序可以直接用到这些系统中。
本系统表现了数据管理通用软部件在当代系统设计中的意义与价值,部分体现了数据管理通用软部件的结构与设计方法。数据管理通用软部件应当是下一代因特网、下一代WEB程序设计、云计算中大数据量整合与分布式数据应用、拥有极大数据量的物联网系统设计等都需要的技术。
本系统提出的外网搜索模式借用公共搜索引擎的资源与优势具有实用价值,其实现方法具有参考价值。
本系统在数据清理与数据自动整合方面进行了有实际价值的探讨。
3 运行环境详细列表
操作系统:windows2000、windows xp
Web服务器:Tomcat
数据库:SQL Server 2005
网络环境:Internet、虚拟专用网(Vpn)
数据库:SQL Server 2005sql2005简洁版安装包
开发语言:Jdk1.6
Tomcat 5.0
Eclips
4 源程序及说明列表
表1 网络搜索及数据管理分系统源程序说明
模块列表 | |
模块编号 |
模块名称 |
user |
系统管理模块 |
NetSearch |
网络搜索模块 |
DataMaintain |
元数据表维护模块 |
SWMaterialib |
素材库维护模块 |
UserManagerModule |
资源库维护模块 |
outernet |
外网查询模块 |
tableView |
表单查询模块 |
assisstence |
帮助模块 |
SearchApp.jar |
组合查询数据的封装 |
表2远程查询系统源程序及说明
模块列表 | |
模块编号 |
模块名称 |
userlogin |
用户登录模块 |
regist |
用户注册模块 |
query |
查询模块 |
comment |
用户评论模块 |
History record |
查询历史记录模块 |
5 上交光盘文档清单
我们于6月9日到11日,先后通过快递、邮政快件向大赛组委会递交了三张光盘,除视频文件存在不同外,其他文件均相同。每张光盘均包括:
系统执行程序:focusOnSearchEnginer.jar
火狐浏览器.exe
源程序代码一套
SQL Server 2005数据库备份文件
聚焦搜索系统需求规格说明书
聚焦搜索引擎系统任务书
聚焦搜索系统总体设计说明书
使用说明(操作手册)
数据库数据导入方法与数据库安装视图
jdk安装过程及环境变量配置
sql2005简洁版安装包
jdk-6u27-windows-i586.exe
apache-tomcat-6.0.35-windows-x86.zip
实现情况(即实际操作情况)视频文档(第一张光盘中缺视频文档)
6 参考文献
程学先、龚晓明、王富强等.“管理信息系统软部件技术研究”文档.湖北省教育厅立项并鉴定.2002-2005年.
程学先、龚晓明、邹文蕙等.企业竞争情报信息系统文档.四川省经济委员会经济信息中心立项并验收.2004-2008年.
罗刚 王振东.自己动手写网络爬虫.清华大学出版社. 2010年10月.
李兴华.java开发实战经典.清华大学出版社.2009-8
苗春义.Java 项目开发全程实录.清华大学出版社.2008-6-1
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-5-14 21:50
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社