一种基于.net的可定制智能垂直搜索引擎系统的制作方法

文档序号:6425354阅读:246来源:国知局
专利名称:一种基于.net的可定制智能垂直搜索引擎系统的制作方法
技术领域
本发明属于系统设计及垂直搜索技术领域,特别是涉及一种基于.NET的可定制智能垂直搜索引擎系统。
背景技术
垂直搜索是针对某一个行业的专业搜索引擎,是对普通搜索引擎的细分和延伸, 是对网页库中的某类专门的信息进行一次整合,能够定向分字段抽取出需要的数据进行处理整合后再以更直观的形式返回给用户。其特点就是“专、精、深”,且具有行业色彩,相比较通用搜索引擎的海量信息无序化,垂直搜索引擎则显得更加专注、具体和深入。所谓搜索引擎,首先它处理的网页数量应该是庞大的,并且其数据结构也是复杂多变的,因此一个实用的搜索引擎应该具有很强的适应性。目前在垂直搜索引擎设计方面, 相关的论文和专利都仅给出一种思路,或者针对某一个特定的网站给出一种特定的方法, 但是这些方法经过实践的检验都很有局限性,且其核心技术并没真正的公开,不具备智能通用性。市场上存在的一些垂直搜索系统,如“去哪儿网”、“中华英才网”等,出于行业竞争的考虑,都对各自的技术实行封锁,如果要从这些地方获得相关技术,商业代价恐怕巨大。 并且现有的垂直搜索系统由于其结构的束缚,可拓展性不强,用户无法定制搜索领域和范围;比如“去哪儿网”是一个垂直搜索引擎,但只能搜索“旅游”领域,用户若要搜索其他的领域,必须换用其他的搜索引擎。一些中小型的网站,他们可能需要提供某种特定的搜索服务,但是限于技术或者成本考虑不可能自己开发一个系统。因此,需要开发一个垂直搜索引擎能够为他们提供一个接口,并且能够定制搜索领域和范围,将查询的结果返回到预定的页面,从而大幅减少成本。此外,该垂直搜索引擎接口能够定期的获取互联网上某一领域的大量数据,使企业的工作效率大幅度提高。2008年1月30日公开的中国专利“自助式智能垂直搜索方法”(Cm01114294),它侧重于进行用户偏好学习,用户无法定制搜索主题和范围,并且只面向个人用户,无法给企业或者商业网站提供接口支持。2008年2月6日公开的中国专利“即时网络呼叫嵌入垂直搜索以支持商业活动的方法”(CN101119328),它的特点是通过语音通讯设备和应用程序实现实时通讯,但是无法满足不同用户的不同搜索需求,搜索的范围在系统设计完成后就锁定了,用户无法更改。

发明内容
本发明所要解决的技术问题是提供一种基于.NET的可定制智能垂直搜索引擎系统,以解决搜索的领域和范围不可定制的问题。本发明解决其技术问题所采用的技术方案是提供一种基于.NET的可定制智能垂直搜索引擎系统,包括应用层、网络层、核心层和控制层,所述的网络层通过统一的 WebService接口分别与应用层和核心层进行数据交换;所述的控制层对网络层和核心层进行控制;所述的应用层、网络层、核心层和控制层都有类库与之相对应;所述的类库包括ControlDLL, WebFetchDLL, WebParseDLL 和 WebkrviceDLL ;所述的引擎系统还包括网页分
析工具。所述的核心层包括接收参数模块,从WebService接口接收应用层提交的参数; 网络蜘蛛模块模块,根据提交的参数对用户的初始ULR表进行解析;获取页面模块,ULR表解析之后,对页面进行解析和数据提取;分词引索模块,将从网页抽取的结构化数据按照各行业的专业知识进行加工处理,去重和分类;返回结果模块,将处理和分类的查询结果按照用户定制的格式返回。所述的控制层包括脚本控制模块,执行页面内部和外部的脚本,增加程序的交互能力,在不改动程序代码的情况下,通过外部的脚本来控制程序的执行;蜘蛛控制模块,控制程序的网络蜘蛛模块的工作模式;线程控制模块,解决多线程程序的线程管理问题。所述的 ControlDLL 包括 ScriptControlLib, ThreadControlLib 禾口 SpiderControlLib0所述的 WebFetchDLL 包括 AutoLoginLib, AutoRegisterLib, WebInfoLib 禾口 ImageProcessLib。所述的WeWarseDLL 包括 XmlLib,RegexLIb, TagLib 和 DomLib。所述的 WebServiceDLL 包括 ServiceLib 禾口 InterfaceLib。所述的网页分析工具包括浏览器,HTML和XML三种视图。有益效果本发明涉及一种基于.NET的可定制智能垂直搜索引擎系统,面向个人客户端、搜索主页、企业客户和商业网站,通过统一的WebService接口及类库和网页分析软件两个开发工具包,不仅可以定制搜索的领域和范围,还可以定制数据的返回格式。个人用户可通过桌面客户端轻松搜索各个领域的信息,企业用户可以通过提供的接口,构建自己应用程序, 定时抓取其定制领域的数据,并且导入数据库供其使用。商业网站可以通过接口,将其定制领域的查询结果实时的显示在其网站中,还可以作为二级代理,向其他网站提供服务。利用提供的接口,可以轻松的构建如“百度”、“谷歌”之类的搜索主页,而不用购买大量的服务
ο


图1为系统结构图。图2为系统完成后的效果图。图3为类库结构图。图4为分析软件图。图5为引擎工作流程图。
图6为网络蜘蛛模块流程图。图7为应用案例图。
具体实施例方式下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。实施例1如图1和图2所示,本发明是一个面向个人客户端、搜索主页、企业客户、商业网站的智能垂直搜索引擎系统,其最大的特点在于“用户可定制”,不仅可以定制搜索的领域和范围,还可以定制数据的返回格式,系统以统一的WebService接口对外提供服务。如图3,图4,图5和图6所示,本发明提供一种基于.NET的可定制智能垂直搜索引擎系统,包括应用层、网络层、核心层和控制层,所述的网络层通过统一的WebService 接口分别与应用层和核心层进行数据交换;所述的控制层对网络层和核心层进行控制;所述的应用层、网络层、核心层和控制层都有类库与之相对应;所述的类库包括ControlDLL, WebFetchDLL, WebParseDLL和WebkrviceDLL ;所述的引擎系统还包括网页分析工具。所述的应用层通过网络层提供的统一的WebService接口提交数据到核心层,在这个层次中,个人客户端、搜索主页、企业客户、商业网站可以完成对智能垂直搜索引擎系统的定制工作,在初始化阶段,用户不仅可以定制搜索的领域和范围,还可以定制数据的返回格式。系统以统一的WebService接口对外提供服务,通过接口用户可以很方便的在自己的网站实现垂直搜索功能,或者是通过客户端获取互联网上某一领域的数据。在定制的过程中,企业高级用户可用提供的网络分析工具分析其所要定制的网站,以便能够更加准确的筛选出所需数据。所述的网络层中,Web服务(Web Service)是基于XML和HTTPS的一种服务, 其通信协议主要基于S0AP,服务的描述通过WSDL,通过UDDI来发现和获得服务的元数据。WebService接口向外界暴露出一个能够通过Web进行调用的API。用户能够用编程的方法通过Web来调用我们的系统功能。要获得相应的查询信息,客户端只需发送一个 HTTP GET请求,就可从接口中获取相应的返回结果。构建WebService接口的操作封装在了 WebkrviceDLL类库中,编程中只需加入引用就可调用相关的方法,快速构建出一个 WebService 接口。所述的核心层是整个系统的核心,核心层读取并处理网络层提交的数据,首先根据参数模块中用户输入的参数和定制的内容,网络蜘蛛模块模块开始工作,其工作流程如图6所示。网络蜘蛛模块对用户的初始URL表进行解析,在抓取网页的时候,网络蜘蛛模块有两种策略广度优先和深度优先。广度优先是指网络蜘蛛模块会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方式,因为这个方法可以让网络蜘蛛模块并行处理,提高其抓取速度。深度优先是指网络蜘蛛模块会从起始页开始,一个链接一个链接地跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。在ControlDLL. SpiderControlLib中封装了对网络蜘蛛模块的操作,编程中可以设定其工作的模式。接下来要获取页面模块,然而有些信息需要登录后才能获得,有些信息需要注册后才能获得,还有些信息获取需要输入验证码,而验证码大多是图片形式,需要识别出相关的文字。WeWetchDLL中封装的方法用于解决页面获取中的技术问题,其中AutoLoginLib用于自动登录处理,AutoRegisterLib用于自动注册处理,ImageProcessLib用于处理图片验证码,WebInfoLib用于获取页面的编码,Cookie 等参数。获取页面后需要对页面进行解析和数据提取,为了从复杂混乱的网页中抽取出结构化的数据,必须采用相关的技术手段,比如,标签定位、图像位置定位、正则表达式、XML处理、Iinq语言。类库WebParseDLL中封装的方法用于解决页面解析和数据提取中的一些常见问题。DomLib用于将HTML转化成DOM对象模型,XmlLib封装了 XML文档的常用操作, RegexUb主要用于正则表达式的操作,TagLib主要用于标签定位。获取数据后分词索引模块对数据进行分词索引,将从网页抽取的结构化数据按照各行业的专业知识进行加工处理,去重、分类等,最后返回结果模块按照用户定制的数据格式,返回查询的结果。所述的控制层主要是对系统的核心层和网络层进行控制,包括脚本控制模块,蜘蛛控制模块和线程控制模块。脚本控制模块,执行页面内部和外部的脚本,增加程序的交互能力,在不改动程序代码的情况下,通过外部的脚本来控制程序的执行;蜘蛛控制模块, 控制程序的网络蜘蛛模块的工作模式;线程控制模块,解决多线程程序的线程管理问题。 ControlDLL 中的 ThreadControILibΛSpiderControILibΛScriptControILib 分别封装了三类问题的解决方法。所述的类库专门为垂直搜索引擎的设计而封装,封装了可供应用层、网络层、 核心层和控制层调用的方法,以便解决垂直搜索引擎设计中的技术问题。类库包括 ControlDLL, WebFetchDLL, WeWarseDLL 和 WebkrviceDLL 四部分,所述的 ControlDLL 包括 kriptControlLib,ThreadControlLib 和 SpiderControlLib,所述的 WebFetchDLL 包括 AutoLoginLib, AutoRegisterLib, WebInfoLib 禾口 ImageProcessLib,所述的 WebParseDLL 包括 XmlLib,RegexLIb, TagLib 和 DomLib,所述的 WebkrviceDLL 包括 ServiceLib 和 hterfaceLib。在程序中只要加入对类库的引用,可以很方便的实现以下功能1.搜索引擎爬虫抓取互联网上的相关网页,采取深度优先或者广度优先的策略调整爬行方向,使系统在用户定制的网页集中爬行。2.多线程管理多线程编程技术是提高程序效率的有效途径,多线程管理能够避免死锁、溢出等一系列问题。3.页面获取技术采用自动登录和自动注册技术,以便获得更多的信息;图片自动识别,有些信息获取需要输入验证码,而验证码大多是图片形式,需要识别出相关的文字。4.信息提取技术为了从复杂混乱的网页中抽取出结构化的数据,必须采用相关的技术手段,比如,标签定位、图像位置定位、正则表达式、XML处理、Iinq语言。5.分词索引技术垂直搜索引擎将从网页抽取的结构化数据按照各行业的专业知识进行加工处理,去重、分类等,最后分词,按照用户定制的数据格式,返回查询的结果。所述的网页分析工具包括浏览器,HTML和XML三种视图,不仅可以查看网页的内容,还可以查看html代码和xml代码。参数栏可以查看当前网页的编码方式、POST参数、 Cookie记录等参数。工具栏中包括XPath工具、正则表达式工具、编码译码工具、Post测试工具、IP工具、脚本测试工具。进入分析模式后,浏览器的导航功能就会关闭,此时可以在浏览器视图中点选任意网页元素,在该窗口中可以查看选中标签的各个属性值及HTML代码。 若要恢复浏览器导航功能,点击“浏览器按钮模式”即可。下面以具体的应用案例说明本发明的具体使用方法。某商务服务公司,为了能向其客户提供酒店、机票的竞价排名信息,需要实时的搜索各个航空公司官网、酒店集团官网、中间代理公司的价格信息;用户在其网站的页面上输入查询条件,搜索后按照价格排序,然后将结果按照统一的格式返回到其页面中。这一任务普通的搜索引擎是无法胜任的,只能通过垂直搜索引擎来完成。为了使引擎符合该商务公司要求,首先要完成定制工作。第一步,定制搜索的范围,向引擎提交其要搜索的各个网站的URL地址。第二步,定制返回格式,向引擎说明其要求的返回数据的数据结构。第三部,接口对接,将引擎提供的WebService接口添加进其网站。完成这三步之后,引擎就能正常工作。其实际的效果如图7所示,该图显示的是机票查询界面,用户填入出发地、目的地、以及日期就能获得相关的航班信息,并且按照预定的格式返回不同网站的信息。
权利要求
1.一种基于.NET的可定制智能垂直搜索引擎系统,包括应用层、网络层、核心层和控制层,其特征在于,所述的网络层通过统一的WebService接口分别与应用层和核心层进行数据交换;所述的控制层对网络层和核心层进行控制;所述的应用层、网络层、核心层和控制层都有类库与之相对应;所述的类库包括ControlDLL,WebFetchDLL, WebParseDLL和 WebServiceDLL ;所述的引擎系统还包括网页分析工具。
2.根据权利要求1所述的一种基于.NET的可定制智能垂直搜索引擎系统,其特征在于,所述的核心层包括接收参数模块,从WebService接口接收应用层提交的参数;网络蜘蛛模块模块,根据提交的参数对用户的初始ULR表进行解析;获取页面模块,ULR表解析之后,对页面进行解析和数据提取;分词引索模块,将从网页抽取的结构化数据按照各行业的专业知识进行加工处理,去重和分类;返回结果模块,将处理和分类的查询结果按照用户定制的格式返回。
3.根据权利要求1所述的一种基于.NET的可定制智能垂直搜索引擎系统,其特征在于,所述的控制层包括脚本控制模块,执行页面内部和外部的脚本,增加程序的交互能力, 在不改动程序代码的情况下,通过外部的脚本来控制程序的执行;蜘蛛控制模块,控制程序的网络蜘蛛模块的工作模式;线程控制模块,解决多线程程序的线程管理问题。
4.根据权利要求1所述的一种基于.NET的可定制智能垂直搜索引擎系统,其特征在于,所述的 ControlDLL 包括 kriptControlLib,ThreadControlLib 和 SpiderControlLib。
5.根据权利要求1所述的一种基于.NET的可定制智能垂直搜索引擎系统,其特征在于,所述的 WebFetchDLL 包括 AutoLoginLib, AutoRegisterLib, WebInfoLib 和 ImageProcessLib。
6.根据权利要求1所述的一种基于.NET的可定制智能垂直搜索引擎系统,其特征在于,所述的 WeWarseDLL 包括 XmlLib,RegexLIb, TagLib 和 DomLib。
7.根据权利要求1所述的一种基于.NET的可定制智能垂直搜索引擎系统,其特征在于,所述的 WebkrviceDLL 包括 krviceLib 和 hterfaceLib。
8.根据权利要求1所述的一种基于.NET的可定制智能垂直搜索引擎系统,其特征在于,所述的网页分析工具包括浏览器,HTML和XML三种视图。
全文摘要
本发明涉及一种基于.NET的可定制智能垂直搜索引擎系统,包括应用层、网络层、核心层和控制层,所述的网络层通过统一的WebService接口分别与应用层和核心层进行数据交换;所述的控制层对网络层和核心层进行控制;所述的应用层、网络层、核心层和控制层都有类库与之相对应;所述的类库包括ControlDLL,WebFetchDLL,WebParseDLL和WebServiceDLL;所述的引擎系统还包括网页分析工具。本发明面向个人客户端、搜索主页、企业客户和商业网站,不仅可以定制搜索的领域和范围,还可以定制数据的返回格式。
文档编号G06F9/44GK102207867SQ20111014546
公开日2011年10月5日 申请日期2011年6月1日 优先权日2011年6月1日
发明者丁永生, 郝矿荣, 郭崇滨, 黄军君 申请人:东华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1