lucene对文档的加权

在建立索引的时候,可以对文档进行加权的操纵,通过加权来影响搜索结果的排序。

Document doc = null;
            for (File files : path.listFiles()) {

                doc = new Document();
                // 本地文档内容添加到document -->索引中
                // field的格式key-value
                doc.add(new Field("content", new FileReader(files)));
                doc.add(new Field("name", files.getName(), Store.YES,
                        Index.NOT_ANALYZED));
                doc.add(new Field("path", files.getAbsolutePath(),
                        Field.Store.YES, Field.Index.NOT_ANALYZED));
                doc.setBoost(5.0f);
                // 4.将文档添加到索引中
                writer.addDocument(doc);

在document对象进行add()域的时候,可以进行对文档的权进行设置,默认是1.0f。执行的方式:doc.setBoost(1.0f)。1.0f是默认值,值越大在后续的搜索排序中的得分就也高,越靠前。

norm:加权信息。

时间: 2024-10-01 02:30:42

lucene对文档的加权的相关文章

lucene文档之DocumentsWriter

ucene将文档加入DocumentsWriter代码调用层次结构如下: DocumentsWriter.updateDocument(Document doc, Analyzer analyzer, Term delTerm)-->(1) DocumentsWriterThreadState state = getThreadState(doc, delTerm);-->(2) DocWriter perDoc = state.consumer.processDocument();-->

Lucene是如何理解文档的 & 文档类型(Types)是如何被实现的

Lucene是如何理解文档的 在Lucene中,一份文档(Document)由一系列简单的字段-值(field-value)对组成.一个字段必须有值,同时允许包含多值.同样的,一个单一的字符串在分析处理过程中可能被转换成多个值.Lucene不关心值到底是字符串.数字还是日期--所有的值都以不可理解的比特值(opaque)对待. 当我们在Lucene中索引一份文档时,值和字段在反向索引(inverted index)中被关联起来.可选项的是,是否将原始值存储起来以便今后使用,存储后的值是不可更改的

Lucene使用Sort方法对文档进行排序

/* * 这段代码使用的是Lucene对于文档排序使用的sort方法 * 这里可以使用多个sort的构造方法,来自己定义,所想要实现的功能. * */ package score; import java.io.IOException; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.d

使用Lucene对预处理后的文档进行创建索引(可执行)

时间: 2015/3/18 杨鑫newlife 对于文档的预处理后.就要開始使用Lucene来处理相关的内容了. 这里使用的Lucene的过程例如以下: 首先要为处理对象机那里索引 二是构建查询对象 三是在索引中查找 这里的代码是处理创建索引的部分 代码: package ch2.lucenedemo.process; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import jav

基础:从概念理解Lucene的Index(索引)文档模型

转:http://blog.csdn.net/duck_genuine/article/details/6053430 目录(?)[+] Lucene主要有两种文档模型:Document和Field,一个Document可能包含若干个Field. 每一个Field有不同的策略: 1.被索引 or not,将该字段(Field)经过分析(Analyisi)后,加入索引中,并不是原文 . 2.如果被索引,可选择是否保存“term vector”(向量),用于相似检索. 3.可选择是否存储(store

使用Lucene实现多个文档关键词检索demo(一)

在进行demo前先到http://www.ibm.com/developerworks/cn/java/j-lo-lucene1/了解关于lucene的一些基本概念,忽略其中的代码实例,因为年代久远,而我的这篇文档正是补充其中代码部分. 了解了基本概念后,接下来就可以开始完成demo了. 首先在http://www.apache.org/dyn/closer.cgi/lucene/java/4.10.0下载lucene包,这里我使用的是最新的4.10版,由于最新版与网上其他lucene使用dem

使用Lucene实现多个文档关键词检索demo(二)

上次在使用Lucene建立索引时使用的时自带的StandAnalyzer分词器,而这个分词器在对中文进行分词时只是机械的按字进行划分,因此使用它lucene就不能很好的对中文索引,也就不能实现对中文关键词的检索了,因此其实上次的实践只能对英文进行. 为了解决这个问题,可以使用IKAnalyzer,它是以开源项目Lucene为应用主体的,结合词典分词和文法分析算法的中文分词组件.它支持中英文等分词. 接下来就用它来改善检索功能,首先是下载IKAnalyzer开发包,我将开发包上传到了这里密钥:7j

用lucene.net根据关键字检索本地word文档

目前在做一个winform小软件,其中有一个功能是能根据关键字检索本地保存的word文档.第一次是用com读取word方式(见上一篇文章),先遍历文件夹下的word文档,读取每个文档时循环关键字查找,结果可想而知效率很慢.检索结果是一条接一条显示出来的o(>_<)o ~~.连菜鸟级别的自己看到这效率都觉得很无语.然后想到计算机的本地搜索及google,百度搜索引擎,它们能做到在海量文件中快速搜到匹配某些关键字的文件,应该是运用其它比较先进成熟的技术来实现.于是上网搜了好多资料,发现有一种叫lu

Lucene in action 笔记 term vector——针对特定field建立的词频向量空间,用cos计算针对该field的文档相似度

摘自:http://blog.csdn.net/fxjtoday/article/details/5142661 Leveraging term vectors所谓term vector, 就是对于documents的某一field,如title,body这种文本类型的, 建立词频的多维向量空间.每一个词就是一维, 这维的值就是这个词在这个field中的频率. 如果你要使用term vectors, 就要在indexing的时候对该field打开term vectors的选项: Field op