lucene 文档评分 及 CustomScoreQuery

原创 2016年05月31日 19:52:59

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代表的是已有的评分,在此基础上进行干预更合理。


Lucene 7.x中根据Field字段值进行排序的小例子

Lucene 7中对DocValues系列的API做了一些改动 本帖就是说明一下API的变化 本帖的例子是将一些图书信息写入索引 然后搜索的时候按照图书出版时间的倒叙排序 先来看写入文档的代码: ...
  • ccdust
  • ccdust
  • 2017年11月27日 10:40
  • 105

Lucene4.10使用教程(七):Lucene的自定义评分

自定义评分的第一种实现方式,详细内容可以查看代码注释 package com.johnny.lucene04.advance_search.selfScore; import java.io.IOE...
  • seven_zhao
  • seven_zhao
  • 2015年01月14日 13:56
  • 8292

自定义Lucene分词器示例

集团的内部通讯工具搜同事时,需要根据姓名后缀进行搜索。譬如“徐欢春”,我们要能根据“欢春”搜出这个人;“黄继刚”,要根据“继刚”为关键字搜出“黄继刚”。这是个很人性化的用户体验,当我们有同事的名字是三...
  • bruce128
  • bruce128
  • 2016年06月20日 11:12
  • 4412

用于Lucene的各中文分词比较

对几种中文分析器,从分词准确性和效率两方面进行比较。分析器依次为:StandardAnalyzer、ChineseAnalyzer、 CJKAnalyzer、IK_CAnalyzer、MIK_CAna...
  • hj7jay
  • hj7jay
  • 2015年12月02日 14:12
  • 2795

Lucene Similarity (Lucene 文档评分score机制详解

转自:http://hi.baidu.com/lewutian/blog/item/3a60a2faad97c912a8d3111a.html 文档的分值代表了该文档在特定查询词下对应的相关性高低,...
  • woaizhoulichao1
  • woaizhoulichao1
  • 2011年08月05日 15:16
  • 397

lucene 自定义评分

  • 2013年05月01日 21:44
  • 2.75MB
  • 下载

lucene评分公式详解

  • 2013年04月10日 13:05
  • 701KB
  • 下载

Lucene评分规则机制

最近部门把公司的搜索业务接过来了,搜索使用的solr,需要研究下solr的评分机制,solr评分规则引用的是Lucene,简单整理了下Lucene评分规则,如下。 1      简介 Lucene...
  • a822631129
  • a822631129
  • 2017年11月16日 14:01
  • 146

lucene5.3.1简单增删改查、评分、分页

lucene5.3.1简单增删改查、评分、分页 package com.innovate.test.lucene.demo; import java.io.IOException; imp...
  • k21325
  • k21325
  • 2016年11月01日 10:37
  • 480

lucene/es 的评分机制

lucene 的评分机制 elasticsearch是基于lucene的,所以他的评分机制也是基于lucene的。评分就是我们搜索的短语和索引中每篇文档的相关度打分。 如果没有干预评分算法的时...
  • sd4015700
  • sd4015700
  • 2015年12月29日 16:31
  • 1695
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lucene 文档评分 及 CustomScoreQuery
举报原因:
原因补充:

(最多只允许输入30个字)