Solr基础理论【排名检索、查准率、查全率】
一.排名检索
搜索引擎代表了基于查询,返回优先文档的一种方法。在关系型数据库的SQL查询中,表的一行要么匹配一个查询,要么不匹配,查询结果基于一列或多列排序。搜索引擎根据文档与查询匹配的程度为文档打分,并按降序返回结果。匹配程度的计算取决于多个因素,一般而言,文档得分越高意味着该文档与查询的相关性越强。
在Solr中会存在单独的字段保存相关性,那就是score字段。在score字段的得分数值并非具有绝对意义,它在lucene内部仅作为相对排名,而且同一文档在不同的查询中的得分并无关系。也就是说,与查询匹配的文档相关度得分仅适用于该查询。返回的结果按照得分从低到高排序,文档得分越高。说明与该查询越相关。
优点:
1.提供清晰的导航方式,把用户越需要的放在越靠前的位置。
2.智能化程度高,用户无需考虑排序问题。
二.查准率
查准率【Precision,精度性的度量】的具体定义如下:正确匹配的文档数量/返回的文档数量【介于0.0~1.0之间】,例如:


假设某次搜索返回的文档集合为文档1、2、3,那么该查询的查准率为1.0【3个正确匹配/3个全部匹配】,这是理想状态。但是,如果返回全部6个结果,那么查准率仅为0.5,因为返回的结果中有一半是不相关的。同样地,如果只返回一个相关文档【比如文档1】,那么查准率依然是1.0,因为返回的结果都是匹配的。可见,查准率是衡量结果与查询是否相关的一个指标,但是它并不关注全面性,即使只返回了100个匹配文档中的1个,查准率依然为1.0【返回的文档中没有不匹配文档】。由于查准率仅考虑了返回结果的整体精确性,而未考虑结果集的全面性,因此需要将查全率与查准率配合使用。
三.查全率
查全率【Recall,全面性的度量,也称召回率】衡量的是搜索结果的全面性。定义如下:返回的正确匹配的文档数/全部正确匹配的文档数。如果仅返回一个匹配文档,则查全率为1/3,因为没有找到其它两个应该匹配的文档【此时查准率为1.0】。
四.查准率与查全率之间的平衡
查准率与查全率的重要区别是,如果返回的结果是正确的,则查准率高;如果正确的结果都被返回了,则查全率高。查准率不关心正确结果是否都被返回出来,而查全率不关心返回的结果是否都是正确的。
虽然查准率与查全率之间存在明显的互逆关系,但它们并不是相互排斥的。在前面的示例中,如果只返回全部匹配文档【文档1、2、3】,那么查准率和查全率就都是1.0。这是因为所有匹配且无不陪配的文档被返回了。
最大限度提升查准率与查全率是绝大多数搜索相关度优化的最终目标。人为或手动调整结果集看似简单,但事实上,这是一个具有挑战性的难题。Solr采用了许多技术用于提高查准率和查全率,其中大部分技术更倾向于提高返回完整文档集的查全率。合适的文本分析【找到词汇的多个变体】可以寻找更多匹配结果,但如果文本分析力度过大,匹配到了错误的词汇变体,那么这些额外的匹配结果可能会影响查准率。
Solr中平衡查准率与查全率的一种常见方式是在整个结果集上计算查全率,仅在搜索结果第一页【或前几页】上计算查准率。根据这一模型,调整Solr的相关度评分的计算方式,让更好的匹配结果被提升到搜索结果的顶部,而许多不良的匹配出现在搜索结果的底部。
如何做到查准率与查全率的最佳平衡,最终取决于现实情。在法律方面的搜索,查全率的重要性更高,因为如果遗漏了文档,就可能会导致一定的法律后果。对于其它现实需求而言,可能仅仅找到一些最佳匹配就可以了。若没有找到最佳匹配,返回为空即可。
大多数搜索应用处于两个极端之间。由于大多数情况下没有所谓的正确答案,所以在查准率与查全率之间取得适度平衡成为一项长期的挑战。不管怎样,理解查准率与查全率以及如何在两者之间做出调整,使得杠杆向某一遍倾斜【另一边上升】,是有效改进搜索结果质量的关键。
五.不适宜使用solr的情况
1.经常需要返回大量文档的情况。搜索引擎一般会为每个查询返回一小部分文档集合,通常为10~100个。同一查询的更多文档可以通过solr内置的分页功能获取。当需要返回大量匹配数据时,查询本身可能执行的很快,但从底层索引结构上重构大量文档时速度极其缓慢。
2.进行深度分析任务。这需要访问大量索引,即使通过分页解决上述问题,底层索引的数据结构也并不适合一次检索大量索引。
Solr基础理论【排名检索、查准率、查全率】的更多相关文章
- Solr基础理论与维护管理快速上手(含查询参数说明)
1. solr基础 因为 Solr 包装并扩展了 Lucene,所以它们使用很多相同的术语.更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容.通过对 Solr 进行适当的配置,某些 ...
- solr系统query检索词特殊字符的处理
solr是基于 lucence开发的应用,如果query中带有非法字符串,结果很可能是检索出所有内容或者直接报错,所以你对用户的输入必须要先做处理.输入星号,能够检索出所有内容:输入加号,则会报错. ...
- 我的solr学习笔记--solr admin 页面 检索调试
前言 Solr/Lucene是一个全文检索引擎,全文引擎和SQL引擎所不同的是强调部分相关度高的内容返回,而不是所有内容返回,所以部分内容包含在索引库中却无法命中是正常现象. 多数情况下我们 ...
- [转]solr系统query检索词特殊字符的处理
原文地址:http://blog.csdn.net/wgw335363240/article/details/39889979 solr是基于 lucence开发的应用,如果query中带有非法字符串 ...
- Solr基础理论【相关度计算】
一.简介 寻找匹配的文档是构建优质搜索体验的关键步骤,但这仅仅是第一步.大多数用户不愿意通过逐页翻阅搜索结果来找到想要的文档.根据一般经验,仅有10%的用户在网页搜索中有意愿继续翻阅第一页以后的搜索结 ...
- Solr基础理论【倒排索引,模糊查询】
一.简介 现有的许多不同类型 的技术系统,如关系型数据库.键值存储.操作磁盘文件的map-reduce[映射-规约]引擎.图数据库等,都是为了帮助用户解决颇具挑战性的数据存储与检索问题而设计的.而搜索 ...
- 查准率(precision)和查全率(recall)
一.理解查准率(precision)& 查全率(recall) 我们在平时常用到的模型评估指标是精度(accuracy)和错误率(error rate),错误率是:分类错误的样本数站样本总数的 ...
- 【分类问题中模型的性能度量(一)】错误率、精度、查准率、查全率、F1详细讲解
文章目录 1.错误率与精度 2.查准率.查全率与F1 2.1 查准率.查全率 2.2 P-R曲线(P.R到F1的思维过渡) 2.3 F1度量 2.4 扩展 性能度量是用来衡量模型泛化能力的评价标准,错 ...
- Solr调研总结
http://wiki.apache.org/solr/ Solr调研总结 开发类型 全文检索相关开发 Solr版本 4.2 文件内容 本文介绍solr的功能使用及相关注意事项;主要包括以下内容:环境 ...
随机推荐
- java 监控文件夹 WatchService
原文链接 :http://blog.csdn.net/lirx_tech/article/details/51425364 public class WacthFileUtil { public st ...
- date命令的FORMAT中输入空格的几种方法
1.date +%Y-%m-%d\ (一个空格)%H:%M:%S 此命令中用了转义字符 \ ,将空格转义出来 2.date +%Y-%m-%d' '%H:%M:%S 此命令中的单引号内可以是一个或多 ...
- haproxy 配置文件详解 之 global
配置示例: global log 127.0.0.1 local0 info maxconn user nobody group nobody daemon nbproc pidfile /usr/l ...
- postcss 将px转换成rem vuecli3+vant+vue+postcss
1.安装 npm install postcss-pxtorem --save 2.找到postcss.config.js 默认是这样 module.exports = { "plugins ...
- IDEA调试进入class文件
今天用IDEA调试时,一直进入class文件,而没有进入java文件. 错误原因 出现这种情况,有可能是Module有多个同名的依赖,调试时程序进入了同名的jar包里面,而不是同名的Module. 如 ...
- Spring MVC标签
1.我们平时使用表单的时候,一般都是这样: <form id="form" action="Login.do" method="post&quo ...
- JAVA锁的膨胀过程和优化(阿里)
阿里的人问什么是锁膨胀,答不上来,回来做了总结: 关于锁的膨胀,synchronized的原理参考:深入分析Synchronized原理(阿里面试题) 首先说一下锁的优化策略. 1,自旋锁 自旋锁其实 ...
- FCB CCB FileObject
CCB ContextControlBlock 是存Private信息的,这个FO的特殊信息 FCB FileControlBlock 是存全局信息的 FO FileOb ...
- RPA系列之(二)-UIPath学习目录
如何一步步渐入佳境,跟着目录一点一点来 UiPath简介 UiPath下载安装与激活 UiPath第一个案例Hello World UiPath变量的介绍和使用-1 UiPath变量的介绍和使用-2 ...
- mysql 基本操作二
1.查询数据 MariaDB [jason]> offset ; 默认是从偏移量为0 处开始查村数据,通过指定offset 可以从offset 处开始取数 2.where 语句 MariaDB ...