欢迎来到天天文库
浏览记录
ID:30794533
大小:317.00 KB
页数:9页
时间:2019-01-03
《曹_选题指南9_使用lucene和solr进行位置感知搜索》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.石河子大学毕业论文(设计)选题指南信息科学与技术学院计科专业2010年级指导教师曹传东职称系统分析师、高工填报时间2013-11-6课题名称使用Lucene和Solr进行位置感知搜索课题来源1科研题目2生产现场3自拟题目√课题类型1论文型2设计型√完成课题所需时间12周—14周所需学生人数1实习(考察)地点论文(设计)地点本院网络工程实验室立题依据不管是通过支持GPS的智能手机查找距离最近的餐馆,还是通过社交站点查找附近的朋友,或是查看特定城市中运输某种商品的所有货车,越来越多的人和企业都会使用位置感知
2、的搜索服务。那么,如何构建基于位置感知的搜索服务呢?好在Apache的开源搜索引擎框架项目Lucene和搜索服务器Solr项目最近添加了空间位置功能。本课题拟研究如何通过Apache的Lucene和Solr、利用空间数据来改进搜索应用程序。为什么要使用搜索引擎而不是那些优秀(甚至免费)的GIS工具呢?原因是将应用程序构建在搜索引擎的基础上能够提供若干更为强大的功能,而这是其他传统途径所无法实现的。搜索引擎在合并结构化和非结构化数据方面非常强劲,它支持用户输入自由形式的查询,比如在搜索免费文本的描述和标题的
3、同时,根据地理位置数据限制或修改结果。例如,旅游站点可实现如下的特性:让用户能够在几秒之内,找到某个城市内的所有提供24小时服务且配有舒适大床的四星级宾馆。有些搜索系统(如Solr)还提供对结果集进行分类、突出显示和拼写检查等功能,从而能够帮助用户高效地查找与位置相关的那些结果。先来看看一个普通的全文搜索引擎都应当包含些什么。由于文本搜索引擎的工作流程一般分三步:从互联网抓取网页→创建抓取网页的索引库→从索引库中进行搜索。因此首先需要设计实现一个能访问网络的爬虫器程序,依据URL之间的关联性自动爬行整个互
4、联网,并对爬行过的网页进行抓取收集。当网页被收集回来后,采用索引分析程序进行网页信息的分析,依据一定的相关度算法(如超链接算法)进行大量计算,创建倒排序的索引库。索引库建好后,用户就可以通过提供的查询界面提交关键词进行搜索,依据特定的排序算法返回搜索结果。因此,搜索引擎并不是对互联网进行直接搜索,而是对已抓取网页索引库的搜索,这也是能快速返回搜索结果的原因,索引在其中扮演了最为重要的角色,索引算法的效率直接影响搜索引擎的效率,是评测搜索引擎是否高效的关键因素。网页爬行器、索引器、查询器共同构成了文本搜索引
5、擎的重要组成单元。但是,针对特定的语言,如中文、日文、韩文等,并不像英文那样可简单地识别出关键词来(因为英语的一句话是用空格分割词语的),因此,在索引器创建索引之前,以及查询器处理用户输入的关键词时,还需要分词器对某种语言的文本进行分词。一般情况下,分词器将一段文本拆分成多个词后,还需要进一步进行过滤处理,如去掉一些敏感词、转换大小写和单复数等,也就是说,除了上面所说的3个关键组件之外,由分词器和过滤器一起构成的所谓文本分析器,也是搜索引擎应当包含的一个重要组件。使用开源搜索引擎项目实现上面的基本组件,不
6、仅可以大大缩短构建搜索应用服务器的周期,并可根据应用需求,进一步构建符合特定需求的搜索引擎系统。开放源代码的搜索引擎可为用户提供更大的透明性,开放的源代码、公开的排序算法、随意的可定制性,相比于商业搜索引擎而言,更为开发者和用户所需要。由于目前国内外已经有一些开放源代码的搜索引擎项目,主要集在中搜索引擎开发工具包与架构、Web搜索引擎、文件搜索引擎几个方面,因此,本课题将采用当前一个比较流行且相对比较成熟的搜索引擎开源项目-Lucene。Lucene可以说是目前最为流行的开放源代码全文搜索引擎工具包,隶属
7、于Apache基金会,由资深全文索引/检索专家DougCutting所发起,并以其妻子的中间名作为项目的名称,放在SourceForge的网站上提供下载。2001年9月,Lucene作为高质量的开源Java产品加入到Apache软件基金会的Jakarta家族中。随着每个版本的发布,这个项目得到了明显的增强,目前Lucene的最新版本为4.6.0。基于Lucene在索引及搜索方面的优秀表现,虽然由Java编写的Lucene具有天生的跨平台性,但仍被改编为许多其他语言的版本:Python(PyLucene)、
8、C++(CLucene)、.Net(Lucenenet)等。Lucene不是一个具有完整特征的搜索应用程序,而是一个全文搜索引擎的架构,提供了完整的查询引擎和索引引擎,以及部分的文本分析引擎(英文与德文两种西方语言)。Lucene...的目的是为软件开发人员提供一个简单易用的工具包,以方便其在目标系统中实现全文检索的功能,或者是以此为基础,建立起完整的全文检索引擎。因此,同其他开源搜索引擎相比,Lucene具有非常好的架构,能
此文档下载收益归作者所有