![针对lucene检索结果进行排序_第1页](http://file4.renrendoc.com/view/9b125d4a8da694f268d3467851b59683/9b125d4a8da694f268d3467851b596831.gif)
![针对lucene检索结果进行排序_第2页](http://file4.renrendoc.com/view/9b125d4a8da694f268d3467851b59683/9b125d4a8da694f268d3467851b596832.gif)
![针对lucene检索结果进行排序_第3页](http://file4.renrendoc.com/view/9b125d4a8da694f268d3467851b59683/9b125d4a8da694f268d3467851b596833.gif)
![针对lucene检索结果进行排序_第4页](http://file4.renrendoc.com/view/9b125d4a8da694f268d3467851b59683/9b125d4a8da694f268d3467851b596834.gif)
![针对lucene检索结果进行排序_第5页](http://file4.renrendoc.com/view/9b125d4a8da694f268d3467851b59683/9b125d4a8da694f268d3467851b596835.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Lucene3.0之结果排序(原理篇)传统上,人们将信息检索系统返回结果的排序称为"相关排序"(relevanceranking),隐含其中各条目的顺序反映结果和查询的相关程度。1、 基本排序原理向量空间模型GeraldSalton等在30多年前提出的"向量空间模型"(VectorSpaceModel,VSM)[SaltonandLesk,1968,Salton,1971]。该模型的基础是如下假设:文档d和查询q的相关性可以由它们包含的共有词汇情况来刻画。经典的TF*IDF词项权重的计算公式:给定某种权重的定量设计,求文档和查询的相关性就变成了求d和q向量的某种距离,最常用的是余弦(cos)距离链接分析PageRank原理链接分析技术主要基于两个假设:1)一个网页被多次引用,则它可能是很重要的,如果被重要的网页引用,说明自身也是重要的,网页的重要性在网页之间可以传递。2)随机冲浪模型:认为假定用户一开始随机地访问网页集合中的一个网页,然和跟随网页的链接向前浏览网页,不会退浏览,那么浏览下一个网页的概率是被浏览网页的量化的重要程度值。按照以上的用户行为模型,每个网页可能被访问到的次数越多就越重要,这样的"可能被访问的次数"也就定义为网页的权值,PageRank值。如何计算这个权值呢?PageRank采用以下公式进行计算:叫•二(1-十占2^-―其中wj代表第j个网页的权值;lij只取0、1值,代表从网页i到网页j是否存在链接;ni代表网页i有多少个连向其它网页的链接;d代表"随机冲浪"中沿着链接访问网页的平均次数。选择合适的初始数值,递归的使用上述公式,即可得到理想的网页权值。2、 Lucene排序计算公式Lucene的排序公式如下:Scare(qd)二card沢queryNormig)x丫(if(tind)xidf(f)2xt.getBoost{)xnorm(t,d))1)sg 协调因子,表示文档(d)中Term(t)出现的百分比,也就是计算查询条件(q)中不同Term(t),以及在文档中出现的数量之和,两者的数量之比。通常在文档中出现查询Term种类越多,分值越高。2)护驻恥"(g),调节因子,不影响索引排序情况,只在检索时使用,主要是用来让排序结果在不同的查询条件之间可以比较。这个条件是在搜索时候计算。数值是根据每一个查询项权重的平方和计算得到。计算公式如下:QliEFyNcrF肥④二j 1 =3战血*刃,文档频率,表示查询词中,每个Term在对应的结果文档中(d)中出现的次数。查询词出现的次数越多,表示出现频率越高,文档的检索得分就越高。为了避免获得更大的相关性函数,实际中,使用次数的平方跟作为文档频率tf的值,避免数值过度放大。4)研®,逆文档频率,检索匹配文档数量的反向函数。按照信息理论,文档出现的次数越少,每一篇文档的信息量就会越大。所以匹配的文档数越少,得分就越高。而索引库中文档总数越多,找到一篇目标文档难度越大,相应的信息量也会比较大。5 小,长度因子,每个索引词汇在域中的总体长度决定的,这个参数在索引建立时确定。数值根据文档中实际具有的索引项个数确定。检索词长度在文档总长度中占的比例越大,长度因子的数值也越大。,d')=d.getBoosiQxle^g^.hNom^eld')x口f,g^tBoost()Lucene3.0之结果排序(操作篇)1、Lucene相关排序流程2、Lucene相关类Query类:一个抽象类,Lucene检索结果最终评分的总控制中心。其它评分有关的类和对象都是由Query类来管理和生产。Weight类接口:定义Query权重计算的一个实现接口,可以被重用。Weight类可以用来生成Scorer类,也可以解析评分的详细信息,另外还定义了获取Query权值的方法。Scorer类:Lucene评分机制的核心类。类的定义是抽象类,提供的一些抽象基本的计分功能方法提供所有的评分类实现,同时还定义了评分的详细解析方法,Scorer类内部有一个Similarity对象,用来指明计算公式。Scorer类:Lucene相似度计算的核心抽象类。Similarity类主要处理评分计算,系统缺省使用类DefaultSimilarity类对象3、 排序控制使用Sort对象定制排序,通过改变文档Boost值来改变排序结果以及使用自定义的Similarity方法更改排序4、 文档Boost加权排序①Boost是指索引建立过程中,给整篇文档或者文档的某一特定域设定的权值因子,在检索时,优先返回分数高的。Document和Field两重Boosting参数。通过Document对象的setBoost()方法和Field对象的setBoost()方法。不同在于前者对文档中每一个域都修改了参数,而后者只针对指定域进行修改。文档加权二Document-boosting*Field-boosting,默认情况下为1,一般不做修改。②Sort对象检索排序Sort使用时通过实例化对象作为参数,通过Searcher类的search接口来实现。Sort支持的排序功能以文档当中的域为单位,通过这种方法,可以实现一个或者多个不同域的多形式的值排序。实际使用排序对象Sort进行排序。主要有两种模式,一种是以字符串表示文档域的名称作为参数指定域排序,一种是直接以排序域的包装域的包装类作为参数进行排序。Sort对象使用比较简单,只需要在对文档索引进行检索时,在检索器的Search方法中带Sort对象作为参数即可。Sort对象相关性排序按照相关性排序时最基本的结果排序方法,使用Sort对象无参数构造函数完成的排序效果相当于Lucene默认的按相关性降序排序。Sort对象文档编号排序某些应用场合需要对所有符合匹配度的结果,按照文档内部编号排序输出。使用Sort对象的静态实例Sort.INDEXORDER来实现Sort对象独立域排序在检索过程中,把检索结果按照某一个特定域排序,非常重要。在使用搜索引擎过程中,有时会选择使用时间排序,而在搜索引擎库中,检索词完全是另外一个域的内容,与时间没有任何关系。这种应用中,检索关键词的匹配仍然是首要因素,匹配太低或者不匹配的文档直接不必处理,而匹配的文档则需进一步排序输出。指定的排序域并没有进行特别限制,可以是检索词的关联域,也可以是文档中的任意其它域。Sort对象联合域排序多个文档域联合排序时,需要注意文档域的添加次序。排序的结果先按照第一个域排序,然后第二个域作为次要关键字排序。开发时,需要根据自己的需要选择合适的次序。Sort对象逆向排序Sortfield,true)或者Sort(field,false)实现升降序排序。Lucene3.0之结果排序(示例篇)这个例子是根据《开发自己的搜索引擎:Lucene2.0+Heritrix》中的例子改的,由于原书中是使用Lucene2.0,所以代码有部分改动。packagesortApp;importjava.io.File;importorg.apache.lucene.analysis.standard.StandardAnalyzer;importorg.apache.lucene.document.Document;importorg.apache.lucene.document.Field;importorg.apache.lucene.index.IndexWriter;importorg.apache.lucene.index.Term;importorg.apache.lucene.index.IndexWriter.MaxFieldLength;importorg.apache.lucene.search.IndexSearcher;importorg.apache.lucene.search.ScoreDoc;importorg.apache.lucene.search.Sort;importorg.apache.lucene.search.TermQuery;importorg.apache.lucene.store.Directory;importorg.apache.lucene.store.FSDirectory;importorg.apache.lucene.util.Version;publicclassSortTest{publicstaticvoidmakeItem(IndexWriterwriter,StringbookNumber,StringbookName,StringpublishDate)throwsException{writer.setUseCompoundFile(false);Documentdoc=newDocument();Fieldf1=newField("bookNumber",bookNumber,Field.Store.YES,Field.Index.NOT_ANALYZED);Fieldf2=newField("bookName",bookName,Field.Store.YES,Field.Index.ANALYZED);Fieldf3=newField("publishDate",publishDate,Field.Store.YES,Field.Index.NOT_ANALYZED);doc.add(f1);doc.add(f2);doc.add(f3);writer.addDocument(doc);}publicstaticvoidmain(String[]args){StringIndex_Store_Path="D:/index/1";Filefile=newFile(Index_Store_Path);try{DirectoryIndex=FSDirectory.open(file);IndexWriterwriter=newIndexWriter(Index,newStandardAnalyzer(Version.LUCENE_CURRENT),true,MaxFieldLength.LIMITED);writer.setUseCompoundFile(false);Documentdoc1=newDocument();Fieldf11=newField("bookNumber","0000001",Field.Store.YES,Field.Index.NOT_ANALYZED);Fieldf12=newField("bookName","钢铁是怎样炼成的",Field.Store.YES,Field.Index.ANALYZED);Fieldf13=newField("publishDate","1970-01-01",Field.Store.YES,Field.Index.NOT_ANALYZED);doc1.add(f11);doc1.add(f12);doc1.add(f13);Documentdoc2=newDocument();Fieldf21=newField("bookNumber","0000002",Field.Store.YES,Field.Index.NOT_ANALYZED);Fieldf22=newField("bookName","钢铁战士",Field.Store.YES,Field.Index.ANALYZED);Fieldf23=newField("publishDate","1970-01-01",Field.Store.YES,Field.Index.NOT_ANALYZED);doc2.add(f21);doc2.add(f22);doc2.add(f23);Documentdoc3=newDocument();Fieldf31=newField("bookNumber","0000003",Field.Store.YES,Field.Index.NOT_ANALYZED);Fieldf32=newField("bookName","篱笆女人和狗",Field.Store.YES,Field.Index.ANALYZED);^ZDOp)4U9LUrD0QPpV」9:|!」M^9Dop)4U9iurooQppv」9:i!」M^SDOp)4U9UJrD0QPpV」9:|!」M^t7DOp)4U9lUrD0QPpV」9:|!」M^£DOp)4U9LUrD0QPpV」9:|!」M^^DOp)4U9LUrD0QPpV」9:|!」M^TDop)4U9iurooQppv」9:i!」M:(£ZJ)PP8-ZDOP:(2Zj)ppe-ZDop:(TZj)ppe-ZDop«CEZ人IWNXT丄OKTxepuTPQ!」勺刁人90牴卩0=1 '“S旳LjSHqndJpQ!」msu=£ZJppu^aaZAlVNV'xspurpisu^aA'SJO^S'PPU "手吐虫M胡逛..^siueN^ooqJpisidM9U=乙oPPU«CEZ人IWNXr丄OKTxepuTPQ!」^aA'SJO^S'PPU'..ZOOOOOO..^.JsqiunN^ooqJpisidmsu=“jppu⑪U91UrDOQM9U=ZDOp4U9LUrooQ:(£9j)ppe-9Dop:(29j)ppe-9Dop:(T9j)ppe-9Dop«CEZ人IWNXT丄OKTxepuTPQ!」勺刁人90牴卩0=1 '“S旳LjSHqndJpQ!」msu=£9Jppu^aaZAlVNV'xspurpisu'sm人90£卩1旳'“手旺日..^siueN^ooqJpisidmsu=乙%ppu«CEZ人IWNXr丄OKTxepuTPQ!」^aA'SJO^S'PPU'“9000000“IgqwnNMoqJpQ!」msu=igjPPU⑪U91UrDOQM9U=9DOP4U9LUrood©gj)pp咛op伽)PP咛op:(Tgj)ppe-gDop«CEZ人IWNXT丄OKTxepuTPQ!」勺刁人90牴卩0=1 '“S旳LjSHqndJpQ!」msu= ppu^aaZAlVNV'xspurppu'sm人90牴卩1旳'“手“钢尝..^siueN^ooqJpisidmsu=乙gjppu«CEZ人IWNXr丄OKTxepuTPQ!」勺刁人90牴卩|9!=1'店000000“IgqwnNMoqJpQ!」msu=巧jppu⑪U91UrDOQM9U=SDOp4U9LUrooQ亦列)ppp•九opf(3J)PP2•九op:(TH)PP8-t7Dop«CEZ人IWNXT丄OKTxepuTPQ!」勺刁人90牴卩0=1 '“S旳LjSHqndJpQ!」msu=£*jppu^aaZAlVNV'xspurpisid'sm人90牴卩1旳'“ “iQWENHOoqJpQ!」msu=乙列ppu«CEZ人IWNXr丄OKTxepuTPQ!」^aA'SJO^S'PPU1力000000“IgqwnNMoqJpQ!」msu=“jppu⑪U91UrDOQM9U=toop4U9LUrood:(££J)PP8-£DOP血)PP吩op:(T£j)ppe-£Dop«CEZ人IWNXT丄OKTXBPUTPQ!」勺刁人90牴卩0=1 '“S旳LjSHqndJpQ!」msu=££jppuwriter.optimize();writer.close();IndexSearchersearcher=newIndexSearcher(Index);TermQueryq=newTermQuery(newTerm("bookName","女"));ScoreDoc[]hits=searcher.search(q,null,1000,Sort.RELEVANCE).scoreDocs;for(inti=0;i<hits.length;i++){DocumenthitDoc=searcher.doc(hits[i].doc);System.out.print("书名:");System.out.println(hitDoc.get("bookName"));System.out.print("得分:");System.out.println(hits[i].score);System.out.print("内部ID:");System.out.println(hits[i].doc);System.out.print("书号:");System.out.println(hitDoc.get("bookNumber"));System.out.print("发行日期:");System.out.println(h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国木材加工行业市场现状及投资态势分析报告(智研咨询)
- 《计算机网络基础与应用(第三版)》 课件 项目九 服务器操作系统
- 模型16、电场模型 (原卷版)-2025版高考物理解题技巧与模型讲义
- 二零二五年度门面铺面转租合同模板创新版
- 消化内科的病例分析课件
- 《信号与系统资料》课件
- 《粥天粥地》课件
- 《幼儿体育游戏》课件
- 历史外交事业的发展课件人教
- 2.2 基因在染色体上 【知识精研】高一下学期生物人教版必修2
- 建筑复工复产安全培训
- 2021年公务员国考《申论》真题(副省级)及参考答案(两套答案)
- 《钢铁是怎样炼成的》读书分享 课件
- 智能蓄电池远程核容系统运维管理指导意见
- 2025年日历( 每2个月一张打印版)
- 2024年全国执业兽医考试真题及答案解析
- 社区成人血脂管理中国专家共识(2024年)
- 广东省2024年普通高中学业水平合格性考试语文仿真模拟卷01(解析版)
- 信息科技重大版 七年级上册 互联网应用与创新 第1单元 单元教学设计 互联网时代
- CR200J动力集中动车组拖车制动系统讲解
- 2024年湖南高速铁路职业技术学院单招职业适应性测试题库参考答案
评论
0/150
提交评论