论文部分内容阅读
【摘 要】本文介绍了利用.NET技术开发垂直搜索引擎的基本原理,分析了.NET架构下垂直搜索引擎的特点和相关技术,并提出了基于.NET进行垂直搜索引擎开发的过程和方法。
【关键词】NET 垂直搜索引擎;
一、引言
随着互联网技术的不断发展,使用互联网获取信息是现阶段人们取得信息的主要方式之一。在使用搜索引擎的检索信息时,人们希望结果能够更加专业,能符合自己的定向需求,这些新的需求给搜索引擎技术提出了更高的深度要求,垂直搜索引擎技术就产生了[1]。随着.NET开发平台功能越来越强大,利用.NET开发程序越来越多,使用.NET开发搜索引擎也成为了一种新趋势。本文分析了.NET架构下垂直搜索引擎的原理和特点,利用.NET技术构建一个垂直搜索引擎。
二、基于.NET垂直搜索引擎概述
(一)垂直搜索引擎整体结构。一个简单的搜索引擎主要有搜索和爬取两部分组成,完整的结构如图1所示。垂直搜索引擎系统开发整体结构是:首先获取感兴趣的文档信息,文档可以来源于Web或者数据库等,也可以是本地路径等,如果来源于互联网,就需用到爬虫;接下来的文本需要提取写入索引库,建立索引项,同时要切分成一个个的单词;最后通过给定的查询服务器提供搜索功能[2]。
(二)垂直搜索引擎相关技术。垂直搜索引擎大体上需要以下几种技术:1.定向的网络爬虫技术;2.网页结构化信息抽取技术或元数据采集技术;3.中文分词、全文检索技术;4.其他信息处理技术等。
(三)垂直搜索引擎技术评估判断。一个垂直搜索引擎的技术评估,应从如下几个方面进行判断:1.全面性:能够从众多来源采集信息;2.更新性:用户最后能够在很短的时间里看到最新发布的信息;3.准确性:数据分类准确,不包含重复的冗余信息;4.功能性:功能完善,可以同时搜索文字,图片,视频信息等。
(四)Lucene.Net技术。近年来Lucene几乎已经成为全文搜索的同义词。随着.Net开发平台越来越强大,作为Lucene在.Net平台的移植版本,Lucene.Net很受欢迎。Lucene.Net是一个开源的全文检索引擎开发包,它是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。开发人员可以利用Lucene.Net在.Net平台上实现全文检索的功能。
三、基于.NET垂直搜索引擎的开发过程
(一)開发网络爬虫。网络爬虫能够从互联网上源源不断的抓取海量信息,搜索引擎的结果信息依据于此。网络爬虫实现的基本功能包括下载相关网页并对URL地址进行遍历。为了获取信息,需要构造有针对性的下载系统。网络爬虫运行前,要对所抓取的内容进行详细分析,了解网站的基本结构,以确定抓取的种子链接起始页。网络爬虫以一个或者多个URL 作为种子,连续抓取页面中满足条件的新URL指向的页面,并做内容定向预分析和结果存储。这个过程需要人工参与完成,也是信息定向抓取所必须完成的。
(二)从HTML文件中提取信息。互联网上有数以亿计的网页,而网页的基本元素就是HTML语言文件。HTML文件经过浏览器解析后,能够转换成可视化的Web页面。搜索引擎系统通过网络爬虫获取这些HTML文件后,通过分析HTML的内容,使用程序建立过滤器获取对应信息。.NET平台包含了功能强大的正则表达式实现,可以用来从字符串提取信息。在开发过程中使用HTMLAgilityPack工具来提取网页内容。对合法的网页用HTMLAgilityPack提供的API 来提取网页中的有用信息,并把得到的信息按指定的格式保存到文本文件中。
想要有好的效果,也就是想得到处理后的产品的信息是比较规整的结构化信息,那么必须建立在所抓取信息来源网站能够提供的较完整的HTML结构基础上。
(三)实现中文分词。关键词提取是文本信息处理的一项重要任务,提取过程包括文本和系统参数的输入,进行分词和过滤停用词,然后对单词权重的计算和排序,最后提取文本关键词。具体实现时要利用Lucene.Net的Analyzer来执行分词。首先要创建一个分析类(Analyzer),然后在索引类Spider和搜索类Search中使用它,用它替换已有的Analyzer类。
(四)创建索引库并添加索引文档。构建索引器的主要任务是对下载的数据进行解析并建立索引。对已分析好的网页,索引器在其抽象数据中选取索引项,建立索引。在建立索引文件时,需要将要索引的文件转化成文本格式,就可利用Lucene.Net 所提供的简单易用的索引建立方法,为这些文档建立索引。
(五)实现搜索用户界面。这部分的工作主要包括:搜索页面的设计和实现搜索结果。设计显示结果的ASP.NET页面,在ASP.NET页面中调用搜索程序,然后把页面发布到IIS服务器中。用ASP.NET显示Lucene.Net返回的搜索结果[3]。
四、总结
本文介绍了基于.NET垂直搜索引擎的基本原理和开发过程,包括网页爬取,中文提取,中文分词,建立索引和存储,实现搜索用户界面等。作为一名开发者,如果担心Lucene.Net功能不够,可以使用支持分布式索引的Solr。包括一些兴趣度,排序优先级,角色查询等,这都将是下一阶段要完成的工作。
参考文献:
[1]勾智楠.垂直搜索引擎的研究与实现[D]. 河北科技大学, 2012
[2]张敏,杜华.垂直搜索引擎系统的设计与实现[J].情报科学,2011,29(3):441-442.
[3]罗刚.使用C#开发搜索引擎[M].北京:清华大学出版社, 2012
作者简介:勾智楠(1985-),男,汉族,硕士,讲师,工程师。主要从事自然语言处理、信息检索、数据挖掘、软件开发等方面的研发工作。
【关键词】NET 垂直搜索引擎;
一、引言
随着互联网技术的不断发展,使用互联网获取信息是现阶段人们取得信息的主要方式之一。在使用搜索引擎的检索信息时,人们希望结果能够更加专业,能符合自己的定向需求,这些新的需求给搜索引擎技术提出了更高的深度要求,垂直搜索引擎技术就产生了[1]。随着.NET开发平台功能越来越强大,利用.NET开发程序越来越多,使用.NET开发搜索引擎也成为了一种新趋势。本文分析了.NET架构下垂直搜索引擎的原理和特点,利用.NET技术构建一个垂直搜索引擎。
二、基于.NET垂直搜索引擎概述
(一)垂直搜索引擎整体结构。一个简单的搜索引擎主要有搜索和爬取两部分组成,完整的结构如图1所示。垂直搜索引擎系统开发整体结构是:首先获取感兴趣的文档信息,文档可以来源于Web或者数据库等,也可以是本地路径等,如果来源于互联网,就需用到爬虫;接下来的文本需要提取写入索引库,建立索引项,同时要切分成一个个的单词;最后通过给定的查询服务器提供搜索功能[2]。
(二)垂直搜索引擎相关技术。垂直搜索引擎大体上需要以下几种技术:1.定向的网络爬虫技术;2.网页结构化信息抽取技术或元数据采集技术;3.中文分词、全文检索技术;4.其他信息处理技术等。
(三)垂直搜索引擎技术评估判断。一个垂直搜索引擎的技术评估,应从如下几个方面进行判断:1.全面性:能够从众多来源采集信息;2.更新性:用户最后能够在很短的时间里看到最新发布的信息;3.准确性:数据分类准确,不包含重复的冗余信息;4.功能性:功能完善,可以同时搜索文字,图片,视频信息等。
(四)Lucene.Net技术。近年来Lucene几乎已经成为全文搜索的同义词。随着.Net开发平台越来越强大,作为Lucene在.Net平台的移植版本,Lucene.Net很受欢迎。Lucene.Net是一个开源的全文检索引擎开发包,它是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。开发人员可以利用Lucene.Net在.Net平台上实现全文检索的功能。
三、基于.NET垂直搜索引擎的开发过程
(一)開发网络爬虫。网络爬虫能够从互联网上源源不断的抓取海量信息,搜索引擎的结果信息依据于此。网络爬虫实现的基本功能包括下载相关网页并对URL地址进行遍历。为了获取信息,需要构造有针对性的下载系统。网络爬虫运行前,要对所抓取的内容进行详细分析,了解网站的基本结构,以确定抓取的种子链接起始页。网络爬虫以一个或者多个URL 作为种子,连续抓取页面中满足条件的新URL指向的页面,并做内容定向预分析和结果存储。这个过程需要人工参与完成,也是信息定向抓取所必须完成的。
(二)从HTML文件中提取信息。互联网上有数以亿计的网页,而网页的基本元素就是HTML语言文件。HTML文件经过浏览器解析后,能够转换成可视化的Web页面。搜索引擎系统通过网络爬虫获取这些HTML文件后,通过分析HTML的内容,使用程序建立过滤器获取对应信息。.NET平台包含了功能强大的正则表达式实现,可以用来从字符串提取信息。在开发过程中使用HTMLAgilityPack工具来提取网页内容。对合法的网页用HTMLAgilityPack提供的API 来提取网页中的有用信息,并把得到的信息按指定的格式保存到文本文件中。
想要有好的效果,也就是想得到处理后的产品的信息是比较规整的结构化信息,那么必须建立在所抓取信息来源网站能够提供的较完整的HTML结构基础上。
(三)实现中文分词。关键词提取是文本信息处理的一项重要任务,提取过程包括文本和系统参数的输入,进行分词和过滤停用词,然后对单词权重的计算和排序,最后提取文本关键词。具体实现时要利用Lucene.Net的Analyzer来执行分词。首先要创建一个分析类(Analyzer),然后在索引类Spider和搜索类Search中使用它,用它替换已有的Analyzer类。
(四)创建索引库并添加索引文档。构建索引器的主要任务是对下载的数据进行解析并建立索引。对已分析好的网页,索引器在其抽象数据中选取索引项,建立索引。在建立索引文件时,需要将要索引的文件转化成文本格式,就可利用Lucene.Net 所提供的简单易用的索引建立方法,为这些文档建立索引。
(五)实现搜索用户界面。这部分的工作主要包括:搜索页面的设计和实现搜索结果。设计显示结果的ASP.NET页面,在ASP.NET页面中调用搜索程序,然后把页面发布到IIS服务器中。用ASP.NET显示Lucene.Net返回的搜索结果[3]。
四、总结
本文介绍了基于.NET垂直搜索引擎的基本原理和开发过程,包括网页爬取,中文提取,中文分词,建立索引和存储,实现搜索用户界面等。作为一名开发者,如果担心Lucene.Net功能不够,可以使用支持分布式索引的Solr。包括一些兴趣度,排序优先级,角色查询等,这都将是下一阶段要完成的工作。
参考文献:
[1]勾智楠.垂直搜索引擎的研究与实现[D]. 河北科技大学, 2012
[2]张敏,杜华.垂直搜索引擎系统的设计与实现[J].情报科学,2011,29(3):441-442.
[3]罗刚.使用C#开发搜索引擎[M].北京:清华大学出版社, 2012
作者简介:勾智楠(1985-),男,汉族,硕士,讲师,工程师。主要从事自然语言处理、信息检索、数据挖掘、软件开发等方面的研发工作。