lucene 文档评分 及 CustomScoreQuery

1.评分

评分公式可见《lucence 文档评分公式》

2.解释

org.apache.lucene.search.Explanation
类,用于解释评分细节。
String org.apache.lucene.search.Explanation.toString()
文本格式输出。
String org.apache.lucene.search.Explanation.toHtml()
html格式输出。例子见图2-1.

图2-1 toHtml()格式的explanation

Explanation org.apache.lucene.search.IndexSearcher.explain(Query query, int doc)

给出doc对于query的评分。这个操作代价比较昂贵,等同于在整个索引上执行这个query。

3.自定义评分

场景:对最近修改过的文档进行加权。

3.1相关类

org.apache.lucene.queries.CustomScoreQuery
定制化评分的Query。
CustomScoreProvider org.apache.lucene.queries.CustomScoreQuery.getCustomScoreProvider(LeafReaderContext context)
拿到含有评分逻辑的CustomScoreProvider。
org.apache.lucene.queries.CustomScoreProvider
含有定制化评分逻辑的类。
float org.apache.lucene.queries.CustomScoreProvider.customScore(int doc, float subQueryScore, float valSrcScore)
一般会重写该方法。若认为这篇doc重要,可以return subQueryScore*加权程度。subQueryScore代表的是已有的评分,在此基础上进行干预更合理。

时间: 2024-08-04 01:35:05

lucene 文档评分 及 CustomScoreQuery的相关文章

SharePoint 2010的文档评分功能

如果大家使用SharePoint来构建文档管理解决方案,给文档评分其实是一个挺常见的需求.可惜在之前的版本中,SharePoint并没有内置这个功能,当然,也不断的有社区项目,通过自定义开发的方式,给SharePoint文档库添加上这个功能.SharePoint 2010终于给文档库(实际上是所有列表),都加上了给文档(和列表项)评分的功能. 在文档库设置中,打开"等级设置"页面,然后在页面中启用等级评定. 然后文档库中会增加两个网站栏,"等级(0-5)"和&quo

lucence 文档评分公式

1.简介 分值计算方式为查询语句query中每个项term与文档doc的评分之和.公式表示见1-1. score(query,doc)=∑term∈queryscore(term,doc)(1-1) 2.term与doc的评分 2.1 基于tf-idf score(t,d)=tf(t,d)∗idf(t)2∗boost(t,d)∗lengthNorm(t,d)∗coord(q,d)∗queryNorm(q)(2-1) 符号 说明 备注 t term / d doc / q term 所在query

lucene Sort 文档排序

1.Sort org.apache.lucene.search.Sort 封装排序标准的类. SortField[] org.apache.lucene.search.Sort.fields 字段. org.apache.lucene.search.Sort.Sort(SortField field) 构造函数.按照指定的SortField进行排序. org.apache.lucene.search.Sort.Sort(SortField... fields) 上面函数的重载,指定多个field

Lucene 3.6.2入门(14) SolrJ操作索引和搜索文档以及整合中文分词

package com.jadyer.solrj; import java.util.ArrayList; import java.util.List; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServer; import org.apache.solr.client.solrj.SolrServerException; import org.apache.sol

lucene net-Lucene.net 创建索引 txt文档

问题描述 Lucene.net 创建索引 txt文档 怎么用Lucene.net对已有的txt文本创建索引,索引文件__r.cfs,_r.cfx,segments.gen,segments_m是编代码之后自动生成的还是怎么来的?大致步骤是什么样的. 解决方案 http://blog.csdn.net/xuezhongsong/article/details/4388241 解决方案二: Lucene.Net创建索引

Lucene如何将含有某一关键字的文档过滤掉?

问题描述 比如我要搜索含"房间"一词的文档,同时将含有"白色"字眼的搜索结果给筛掉,请问应该怎么写呢?之前从Lucene的API手册上发现有一个org.apache.lucene.search.TermsFilter的类可能可以实现这个功能,但在写代码的时候却老是引入不了这个类.不知道这个类放在哪个jar包里..当然,如果有其它更好的方法的话也可以分享一下. 问题补充:beneo 写道 解决方案 TermsFilter不是要你引入的,而是要和FilteredQuer

lucene Collector 文档收集器

编写自定义的Colletor,可以对搜索返回的文档实现更精确的控制. 1.接口 1.1 Collector org.apache.lucene.search.Collector 接口.用于聚合原始的搜索结果,实现排序及定制化的过滤. LeafCollector org.apache.lucene.search.Collector.getLeafCollector(LeafReaderContext context) 接口内的方法.创建一个新的collector 来完成给定上下文的收集. bool

通过HttpHandler和开源控件PDFBox来对PDF文档进行访问控制

前言 如果我们想将服务端的PDF文档内容展示给客户端,往往会通过URL直接访问的方式.这样一来,PDF文档就会毫无保留的保存到客户端去,通过浏览器的PDF插件,客户端可以随意拷贝PDF的副本.(如下图) 本文通过HttpHandler和开源控件PDFBox来对PDF文档进行访问控制,只向客户端解析并展示PDF的内容而非PDF文件本身. PDF解析 目前有许多PDF解析组件,国内比较常用的是iTextSharp,该控件早期从JAVA移植过来,完全支持.NET平台,在创建PDF文档方面非常灵活易用.

OpenKM开源文档管理系统简介

OpenKM简介 OpenKM是一个文档管理系统,用于组织和共享文档.可以通过名称,内容,关键字等来搜索文档.基于Jboss+J2EE+Ajax web (GWT)+Jackrabbit (lucene)等技术开发. 相关技术 OpenKM开发过程中运用到了如下几个技术: JBoss 4.0.3SP1 ( version basis for the development ) Java企业级服务器 Java J2EE ( JDK 1,5 ) Java企业级开发环境 Jackrabbit 内容管理