毕业论文(设计)论文(设计)题目:站内全文搜索引擎的设计与实现目录摘要.........................................................................................................1ABSTRACT...............................................................................................2第1章绪论..............................................................................................31.1课题的研究背景与意义...............................................................31.2研究现状.......................................................................................41.3本文的工作...................................................................................4第2章站内搜索引擎相关技术介绍......................................................62.1全文检索技术...............................................................................62.2.NET相关技术...............................................................................72.2.1.NET平台..............................................................................72.2.2VisualStudio2012开发平台.................................................72.3Lucene.NET介绍...........................................................................8第3章站内搜索引擎的设计与实现......................................................93.1站内搜索引擎功能需求...............................................................93.2站内搜索引擎总体设计及数据库设计.....................................10第4章站内搜索引擎关键代码实现....................................................114.1主界面..........................................................................................11第5章总结与展望................................................................................14参考文献..................................................................................................151摘要淘宝的出现,电子商务井喷式的发展,以及越来越多的社交网站、团购网站、专门类信息网站的出现,海量的数据蕴含在网站之内。巨大的信息量无疑是把双刃剑,在给用户提供丰富信息的同时,也给用户提了一个大大的难题,如何在这海量信息中找到用户想得到的信息,尤其是当用户提供的是一组信息不是十分明确的词组时,如何能讲有用的信息条理清晰地提供给用户,这进一步刺激了站内搜索技术的发展。本文在总结站内搜索功能的同时,在研究了站内搜索相关技术的基础上,设计并实现了一个简易的站内搜索引擎,实现了在内搜索的主要功能。关键词:站内搜索;.NET;Lucene.NET2ABSTRACTTheTaobaoemergenceofe-commercedevelopmentspurt,aswellasagrowingnumberofsocialnetworkingsites,groupbuyingsites,theemergenceofspecializedclassinformationwebsitecontainsvastamountsofdatawithinthewebsite.Ahugeamountofinformationisundoubtedlydouble-edgedsword,givingusersawealthofinformation,butalsotoprovidetheuserabigproblem,howtofindauserwantsinformationinthismassofinformation,especiallywhentheuserisofferedawheninformationisnotveryclearsetofphrases,howcanspeakclarityofusefulinformationavailabletousers,whichfurtherstimulatedthedevelopmentofthestationsearchtechnology.Thispapersummarizesthestationsearchfunctionatthesametime,inthestudyofthestationsearchrelatedtechnologies,basedonthedesignandimplementationofasimplesitesearchengine,includingtherealizationofthemainfunctionsofthesearch.Keywords:SiteSearch;.NET;Lucene.NET3第1章绪论自从有了计算机以后,人类开始用计算机保存信息,有保存就需要查找,于是出现了检索技术。文本检索技术的发展从最初的SMART文档检索系统到AltaVista搜索引擎,到现在的搜索巨头Google,人们习惯在互联网上搜索需要的信息[1]。同时在同一个网站内往往拥有大量的资源,怎样在网站内部使用户能够迅速的找到所需信息,已成为一个网站能够吸引用户的重要方面。随着信息地快速增长,这一方面的需求越来越大,在很大程度上严重影响到Web站点的成功[2]。因此,建立站内搜索引擎成为必要。所谓站内搜索无非就是对数据库信息的检索,当然,数据库通过SQL查询也在一定程度上提供了这样的功能。但是,数据库所提供的Like’%key-word%’查询,不但效率不高,尤其是在多字段查询时,而且所提供的仅仅是关键字的全信息匹配,所查询到的内容必须是“key-word”的顺序匹配,这对于大多数网站,尤其是大型网站来说,基于数据库查询的站内搜索往往出现检索数据不准确、更新慢、无法控制检索等问题[3]。那么,如何来解决这个问题呢?搜索引擎的出现给了人们带来了一线希望。诸如Google、Baidu等全文搜索引擎能够提供一种基于全文信息的搜索方式,并且能够在所提供的一个或一组词中分离出具有一定含义的词,并以这些词为关键字搜索并得到包含这些关键字的信息[4]。然而,我们无法做到在自己的网站中做出一个如Baidu、Google那样的搜索引擎。但是,Lucene的出现,使这种实现成为可能,它是一个开放源代码的全文检索引擎工具包,利用Lucene建立的全文检索系统可以通过其丰富的分析技术达到令人满意的检索效果[5]。1.1课题的研究背景与意义在以往网站建设、企业信息系统搭建过程中,由于信息结构简单、内容稀缺,站内搜索乃至搜索都不是网站系统的必要装备。但随着Web2.0带来的海量信息井喷式涌现,企业自身对信息架构、管理、发布的需求,以及用户对信息的组织、查询、可寻性的要求越来越高,于是站内搜索出现了。4淘宝的出现,电子商务井喷式的发展,以及越来越多的社交网站、团购网站、专门类信息网站的出现,海量的数据蕴含在网站之内。巨大的信息量无疑是把双刃剑,在给用户提供丰富信息的同时,也给用户提了一个大大的难题,如何在这海量信息中找到用户想得到的信息,尤其是当用户提供的是一组信息不是十分明确的词组时,如何能讲有用的信息条理清晰地提供给用户,这进一步刺激了站内搜索技术的发展[6]。站内搜索通俗来讲是一个网站或商城的“大门口”,一般在形式上包括两个要件:搜索入口和搜索结果页面,但在其后台架构上是比较复杂的,其核心要件包括:中文分词技术、页面抓取技术、建立索引、对搜索结果排序以及对搜索关键词的统计、分析、关联、推荐等[7]。1.2研究现状站内搜索主要提供的是全文搜索功能,常用的检索技术分为如下两种:(1)使用关系数据库的like’%keyword%’查询来代替全文检索系统。这种方法在信息量比较小的情况下,检索速度比较快,但是由于查询语句比较繁琐,在面对海量信息的情况下,检索速度会急剧降低,其性能也往往达不到要求,甚至影响数据库的其他正常使用,尤其是在网络状态下,这方面的缺陷尤为明显[8]。(2)使用通用的数据库系统提供的全文检索功能。一些信息化平台虽称实现了全文索引库,但其实质是模拟的全文索引库,其通过先检索放在关系数据库里的结构化数据,如题目、摘要、内容等,然后链接全文以获得全文,而真正实现全文检索的不多,而且在数据量比较大,特别是在海量数据的情况下,检索的效率仍然比较低[9]。1.3本文的工作本论文在研究了全文搜索相关文献的基础上,分析了Lucene.NET框架,基于.NET平台,实现了一个简单的站内搜索引擎,主要研究内容包括[10]:(1)全文检索知识的研究。包括全文检索的基本原理和相关理论;(2).NET平台相关技术的研究。包括,.NETFramework介绍,VisualStudio开发环境介绍;5(3)分词框架研究。包括Lucene介绍及工作原理。(4)设计并实现一个简单的站内搜索引擎。6第2章站内搜索引擎相关技术介绍2.1全文检索技术所谓全文检索,是一种将文件中所有文本与检索项匹配的文字资料检索方法。全文检索系统是按照全文检索理论建立起来的用于提供全文检索服务的软件系统[11]。全文检索能够将存储于数据库中整本书、整篇文章中的任意内容信息查找出来的检索。它可以根据需要获得全文中有关章、节、段、句、词等信息,也就是说类似于给整本书的每个字词添加一个标签,也可以进行各种统计和分析。例如,它可以很快的回答“《水浒传》一书中“宋江”一共出现多少次?”的问题。全文搜索技术是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,搜索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。检索主要分为按字检索和按词搜索两种。按字检索是指对于文章中的每一个字都建立索引,检索时将词分解为字的组合。对于各种不同的语言而言,字有不同的含义,比如英文中字与词实际上是合一的,而中文中字与词有很大分别。按词搜索指对文章中的词,即语义单位建立索引,检索时按词搜索,并且可以处理同义项等。英文等西方文字由于按照空白切