Lucene默认的Ranking代码分析北京大学网络与信息系统研究所.DOC

Lucene默认的Ranking代码分析北京大学网络与信息系统研究所.DOC

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Lucene默认的Ranking代码分析北京大学网络与信息系统研究所

Report of WBIA Project 2 课程名称:WBIA 授课老师:彭波 助理教师:曹霖 学生: 赵帅 1001213656 裴雨龙 1001213635 李金平 1001213193 目录 摘要 3 1. 背景介绍 3 2. 研究方法 3 2.1 建立索引和查询系统 3 2.2 Lucene默认的Ranking代码分析 4 2.3改进Ranking算法及其评估方法 6 3. 实验结果 7 3.1 搜索显示 7 3.2 对改进Ranking算法的评估结果 8 4. 总结 9 5. 参考文献 9 摘要 本次试验的研究内容是Inverted Index and Retrieval System,主要分为三个步骤: 配置Lucene, 对ccer数据建立索引和查询系阅读代码,分析Lucene的ranking算法写一个简短的报告文档改进ranking算法,并进行评估 背景介绍 Apache Lucene是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构提供了完整的查询引擎和索引引擎,部分文本分析引擎提供一组解读,过滤,分析文件,编排和使用索引的API,使用者可以随时应自已需要自订其功能。 Lucene使你可以为你的应用程序添加索引和搜索能力。Lucene可以索引并能使得可以转换成文本格式的任何数据能够被搜索。Lucene并不关心数据的来源、格式甚至它的语言,只要你能将它转换为文本。这就意味着你可经索引并搜索存放于文件中的数据:在远程服务器上的web页面,存于本地文件系统的文档,简单的文本文件,微软Word文档,HTML或PDF文件或任何其它能够提取出文本信息的格式。 Lucene索引文件格式独立于应用平台提供了索引的扩展机制设计了独立于语言和文件格式的文本分析接口 2.1 建立索引和查询系统 读取文件 由于是对文本建立索引,所以目前只需要网页文件,在遍历过程中对所有的文件做了一下判断,只取shtml、html、asp、php、htm等后缀的文件。读取所有文件名,将其保存在一个String中,以“/”将文件名隔开,之后便可 以使用使String []list=s.split(/);得到文件名列表 (2)建立索引 通过CCER抓取到的数据存放的位置建立一个File,然后为其下面的所有 网页文件建立索引writer = new IndexWriter(FSDirectory.open(new File(indexPath)),analyzer, true, IndexWriter.MaxFieldLength.LIMITED); 并通过 如图2-1所示的代码分别为网页文件名、标题和正文建立了索引其中对于网页正文内容的读取使用HTMLParser和正则表达式。利用HTMLParser读取网页中title和body节点,然后利用正则表达式去掉body中诸如div或者script的节点,得到正文。 利用search(searchField, searchWord);进行搜索,利用TopDocs td=searcher.search(query, 1000); int totalHits=td.totalHits返回搜索结果即可。 Lucene采用了空间向量模型(VSM)来进行检索。Lucene的打分机制是根据以下公式:score(q,d)=coord(q,d)xqueryNorm(q)x∑(tf (t ind )xidf(t)2 xt.getBoost()xnorm(t,d)))。其中coord表示一篇文档所包含的搜索词越多,此文档的分数越高;queryNorm计算每个查询条目的方差和,其结果对排序没有影响 下面介绍Lucene如何计算各个部分的值: (1)tf和idf tf表示某个term在文档中出现的词频,idf表示term在几个文档中出现过。 在DefaultSimilarity类中,图2-2和图2-3分别为Lucene获取tf和idf的代码 图2-2 tf代码截图 图2-3 idf代码截图 (2)queryNorm queryNorm 是一个修正因子(normalizing factor),用来使不同查询间的分数更可比较(comparable)。这个因子不影响文档的排名(ranking)这是一个搜索时的因子是在搜索的时候起作用,由Similarity

文档评论(0)

wumanduo11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档