文档章节

solr搜索结果按更新时间与关键字相关度排序

hxt168
 hxt168
发布于 2016/07/12 10:00
字数 478
阅读 103
收藏 0

  项目中用solr(lucene内核)来完成全文检索。项目中需求是搜索文章时,返回的结果中与搜索关键词匹配度高的要靠前,更新时间近的文章也要靠前。lucene框架有一套完善的评分公式:

    coord(q,d) 评分因子,基于文档中出现查询项的个数。越多的查询项在一个文档中,说明文档的匹配程度越高。
    queryNorm(q)查询的标准查询
    tf(t in d) 指项t在文档d中出现的次数frequency。具体值为次数的开根号。
    idf(t) 反转文档频率, 出现项t的文档数docFreq
    t.getBoost 查询时候查询项加权
    norm(t,d) 长度相关的加权因子

 根据这个公式默认的排序就是 文档与搜索词匹配度越高,排序越靠前。要加入其他因素对排序影响,一般通过更改boost的值。Solr的edismax方式的bf查询配置就是更改boost值影响总体打分。

在solrconfig.xml中加入下面配置:

   <requestHandler name="/select" class="solr.SearchHandler">
		<lst name="defaults">
		<str name="defType">edismax</str>
		<str name="bf">
		recip(ms(NOW,publishTime),3.16e-11,1,1)
		</str>
		<str name="pf">
		</str>
		<str name="qf">
		</str>
		</lst>
  </requestHandler>

  bf中的公式就是1/(ms(NOW-updateTime)*3.16e-11)+1 ,ms()是两个时间的毫秒差(详见

http://wiki.apache.org/solr/FunctionQuery)。公式中:更新时间与now相差越大,分数越小;分数在0-1之内;最近的更新时间和最远的更新时间对分数影响斜度不会太大。

 

 

 

© 著作权归作者所有

共有 人打赏支持
hxt168

hxt168

粉丝 8
博文 19
码字总数 16858
作品 3
杭州
程序员
私信 提问
Hybris电商平台搜索服务实践

电商平台搜索服务特点 随着电商平台的快速发展和所销售商品的数量大规模增长,从大量的商品数据中快速获取用户关注的商品,变得越来越有挑战性。优秀电商平台能够吸引客户的因素之一,就是拥...

dev_csdn
05/02
0
0
Solr开发文档

Solr 是一种可供企业使用的、基于 Lucene 的搜索服务器,它支持层面搜索、命中醒目显示和多种输出格式。在这篇文章中,将介绍 Solr 并展示如何轻松地将其表现优异的全文本搜索功能加入到 We...

ibm_hoojo
2011/10/21
0
0
Solr搜索的排序打分规则探讨

http://www.colorfuldays.org/program/solr/solredismaxboost/ 使用Solr搭建搜索引擎很容易,但是如何制定合理的打分规则(boost)做排序却是一个很头痛的事情。Solr本身的排序打分规则是继承自...

zmf
2014/11/14
0
0
Solr In Action 中文版 第一章(一)

第一章 Solr 简介 本章速览: ·搜索引擎处理的数据特性 ·常见搜索引擎用例 ·Solr核心模块介绍 ·选择Solr的理由 ·功能概述 伴随着社交媒体、云计算、移动互联网和大数据等技术的高速发展...

fengstyle
2014/07/09
0
0
JAVAEE——Solr:安装及配置、后台管理索引库、 使用SolrJ管理索引库、仿京东的电商搜索案例实现

1 学习回顾 1、 Lucene 是Apache开源的全文检索的工具包 创建索引 查询索引 2、 遇到问题? 文件名 及文件内容 顺序扫描法 全文检索 3、 什么是全文检索? 这种先创建索引 再对索引进行搜索的...

kent鹏
07/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志-7(静态代理和JDK代理)

静态代理 我们平时去餐厅吃饭,不是直接告诉厨师做什么菜的,而是先告诉服务员点什么菜,然后由服务员传到给厨师,相当于服务员是厨师的代理,我们通过代理让厨师炒菜,这就是代理模式。代理...

白话
38分钟前
6
0
Flink Window

1.Flink窗口 Window Assigner分配器。 窗口可以是时间驱动的(Time Window,例如:每30秒钟),也可以是数据驱动的(Count Window,例如:每一百个元素)。 一种经典的窗口分类可以分成: 翻...

满小茂
39分钟前
3
0
my.ini

1

architect刘源源
55分钟前
6
0
docker dns

There is a opensource application that solves this issue, it's called DNS Proxy Server It's a DNS server that solves containers hostnames, if could not found a hostname that mat......

kut
今天
5
0
寻找数学的广度——《这才是数学》读书笔记2700字

寻找数学的广度——《这才是数学》读书笔记2700字: 文|程哲。数学学习方式之广:国内外数学教育方面的专家,进行了很多种不同的数学学习方式尝试,如数学绘本、数学游戏、数学实验、数学步道...

原创小博客
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部