solr使用了Lucene的内核,也继承了Lucene的打分规则,关于Lucene打分规则可以参考如下博客
http://blog.chenlb.com/2009/08/lucene-scoring-architecture.html
Solr内改变打分规则有几种形式:
1.配置solr的solrconfig.xml中edismax,来改变Boost打分规则
2.在solr的schema中增加一个字段,该字段专门用于排序
3.自写一个solr的评分规则。
一般简单的应用1和2就能满足。
举一个例子,电商类网站(比如淘宝)的商品搜索:
1.在商品名称上出现搜索关键字排序靠前,而内容的次之
2.对多皇冠的买家排序靠前等
3.对近期发布的商品排序靠前
4.对最近销售多商品靠前
综上获得一个综合排名
在solrconfig.xml的SearchHandler中如下配置
<requestHandler name="standard" class="solr.StandardRequestHandler" default="true" >
<lst name="defaults">
<str name="echoParams">explicit</str>
<str name="rows">10</str>
<str name="hl">on</str>
<str name="hl.fl">name,content</str>
<str name="f.content.hl.fragsize">200</str>
<str name="defType">edismax</str>
<str name="bf">
sum(recip(ms(NOW,pub_date),1,1,100),div(point,5632000),div(sale_count,1000000))
</str>
<str name="pf">
content
</str>
<str name="qf">
name^1.9
</str>
</lst>
</requestHandler>
bf用函数计算某个字段的权重,如上例子中pub_date发布日期的权重,point比如诚信指数,sale_count销售数量
bf内字段必须是索引的,bf的函数查看solr api文档 http://wiki.apache.org/solr/FunctionQuery
pf查询字段,这样在schema不用制定默认字段
qf对默认查询增加权重比值,比如标题是content的1.9倍,值越大权重越大
这样查询就会计算如下的一个综合评分值了
对于其他排序,比如说价格排序,在schema增加price字段,然后查询是增加sort=price desc就可以了
solr这种排序方式,已经在我的诚交网易货商品搜索里实现,效果还算不错。
分享到:
相关推荐
在电商领域,搜索结果的排序和打分对于用户体验至关重要,因为它直接影响到商品的展示顺序,进而影响到销售。本篇文章将详细介绍如何利用Solr实现电商自定义打分机制。 首先,我们需要了解Solr的评分(Score)机制...
3. **排序与评分**:Solr可以根据多种因素(如相关性、日期、自定义函数)对搜索结果进行排序,并提供TF-IDF等评分机制。 4. **高亮显示**:搜索结果中的关键词可以被高亮,方便用户快速定位匹配内容。 5. ** ...
基于solr-geo空间搜索 1、Solr的schema.xml配置 定义坐标field 2、Solr的data-config.xml配置 建立索引 3、java查询语法 坐标距离、分页、排序
Solr搜索自动补全是现代电商网站常见的一项功能,它能够显著提升用户体验。当用户在搜索框输入关键词时,系统会根据输入的文字,实时展示一个下拉列表,该列表包含用户可能想要搜索的查询项。这不仅可以引导用户更快...
ES(ElasticSearch)和Solr都是基于Lucene的搜索引擎,它们各自提供了一套搜索框架,用于实现高效的全文搜索功能。由于两者都是在Apache License 2下开源的,因此在选择使用哪种搜索方案时,需要根据不同的使用场景...
Solr搜索引擎是一款强大的开源全文搜索和分析引擎,由Apache软件基金会开发并维护。它主要设计用于处理大量数据的高效检索,支持多种数据源,并提供高度可扩展性和容错性。在深入探讨Solr之前,我们先来理解一下什么...
Solr搜索引擎支持分页是其核心特性之一,它在处理大量数据检索时,为了提高用户体验,提供了高效且灵活的分页解决方案。Solr是基于Java的开源全文搜索服务器,采用了Apache Lucene作为其核心搜索引擎库。Lucene是...
### Solr搜索服务器安装配置详解 #### 一、Solr简介 Apache Solr是一款开源的高性能全文搜索引擎,基于Lucene库构建。它采用Java开发,提供了丰富的API接口,支持多种编程语言,使得开发者能够轻松地集成搜索功能到...
Solr,全称为Apache Solr,是Apache软件基金会的一个开源项目,主要提供高速、可扩展的全文检索、命中高亮、拼写检查、查询分析等功能,广泛应用于企业级搜索应用。它基于Java语言开发,使用Lucene库作为其核心搜索...
Solr不仅支持简单的关键词查询,还包含了丰富的文本分析、排序、分面搜索、高亮显示结果等功能,使其成为大数据环境下理想的搜索解决方案。 在描述中提到,这个插件是经过个人试用并且评价为简单好用的,这意味着它...
1.学员操作手册-Solr搜索自动补全 2.solr实训教程.doc 3.积分商城基于Solr的搜索引擎优化.pdf 4.基于Solr的搜索引擎优化讲义.pdf 5.课程大纲-基于搜索引擎培训.doc 6.学员操作手册-Solr数据库插入索引.doc 7.学员...
同时,Solr还提供了排序功能,允许用户按价格升序或降序排列搜索结果。这通常通过“sort”参数实现,如“price asc”或“price desc”。 四、分页 在大量商品数据中,分页是必不可少的。Solr的“start”和“rows”...
sorl搜索引擎安装与文件,Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
### Apache Solr 企业搜索引擎教程知识点总结 #### 1. Apache Solr 概述 - **Solr**:Apache Solr 是一款高度可扩展且高性能的企业级搜索平台,由Apache软件基金会维护。它是一个开源搜索服务器,使用Java语言编写...
使用solr搜索引擎 利用Spring springmvc 框架 在页面实现一些组合查询
apache solr搜索系统的.Net实现
NULL 博文链接:https://ldcsunnyboy.iteye.com/blog/1113251
### Solr 搜索引擎知识点详解 #### Solr概述 **Solr** 是一款开源的、高性能的全文检索服务器,能够支持大规模数据集的快速搜索需求。它基于 **Apache Lucene** 开发,提供了丰富的功能集,包括全文检索、文档排序...
### Apache Solr 搜索使用文档知识点详解 #### 一、Apache Solr简介及特性 **Apache Solr** 是基于 **Apache Lucene** 的一个高性能、全功能的企业级搜索引擎。Solr 不仅继承了 Lucene 强大的全文检索能力,还在此...