lucence 文档评分公式

简介: 1.简介分值计算方式为查询语句query中每个项term与文档doc的评分之和。公式表示见1-1。 score(query,doc)=∑term∈queryscore(term,doc)(1-1)score(query,doc)=\sum _{term \in query} score(term,doc) \tag {1-1}2.term与doc的评分2.1

1.简介

分值计算方式为查询语句query中每个项term与文档doc的评分之和。公式表示见1-1。

score(query,doc)=termqueryscore(term,doc)(1-1)

2.term与doc的评分

2.1 基于tf-idf

score(t,d)=tf(t,d)idf(t)2boost(t,d)lengthNorm(t,d)coord(q,d)queryNorm(q)(2-1)
符号 说明 备注
t term /
d doc /
q term 所在query /
tf(t,d) term在doc中的频率 /
idf(t) 1termdoc /
boost(t,d) 域和文档的加权 在索引期间设置。可以用该方法对某个域或文档进行静态单独加权
lengthNorm(t,d) 域的归一化值 域的归一化(normalization)值,更短的域获得更大的加权。该值在索引期间计算,并保存在索引norm中。
coord(q,d) 协调因子(Coordination factor) 基于doc与query的term的交集的数量。该因子会对包含更多搜索项的文档进行类似AND 的加权。
queryNorm(q) 查询的归一化值 每个term权重的平方和

2.2 基于BM25

score(t,d)=idf(t)(k1+1)tf(t,d)k1((1b)+bdlavgdl)+tf(t,d)(2-2)

k1,b为调节因子,根据经验设置,一般取 k1=2,b=0.75,dl为文档长度,avgdl为所有文档的平均长度。
目录
相关文章
|
存储 消息中间件 数据库
云计算|OpenStack|社区版OpenStack安装部署文档(八--- 存储服务cinder的安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(八--- 存储服务cinder的安装部署---Rocky版)
523 0
|
Kubernetes Java 测试技术
ChaosBlade常见问题之在K8s环境下演练cpu满载报错如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
509 0
|
8月前
|
Java 程序员 开发者
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
482 14
|
9月前
|
人工智能 自然语言处理 架构师
字节面试: es怎么提升性能和精准度?(尼恩独家,史上最全)
本文由40岁老架构师尼恩撰写,针对ES(Elasticsearch)提升搜索性能和精准度的面试题进行详细解析。文章首先指出,提升ES速度和精准度是两个独立的问题,分别涉及性能优化和精准度优化。这些内容不仅有助于应对面试中的难题,还能帮助开发者在实际项目中构建更高效的搜索系统。尼恩强调,掌握这些知识后可以在面试中“吊打”面试官,轻松获得理想Offer。同时,他还提供了《尼恩Java面试宝典PDF》等资源供读者学习参考。
|
Java
Java中notify 和 notifyAll有什么区别
【8月更文挑战第10天】Java中notify 和 notifyAll有什么区别
318 0
|
存储 监控 Linux
select/poll/epoll优缺点及应用场景
select/poll/epoll优缺点及应用场景
374 1
|
消息中间件 存储 负载均衡
精华推荐 | 【深入浅出 RocketMQ原理及实战】「底层源码挖掘系列」透彻剖析贯穿RocketMQ的消费者端的运行核心的流程(上篇)
精华推荐 | 【深入浅出 RocketMQ原理及实战】「底层源码挖掘系列」透彻剖析贯穿RocketMQ的消费者端的运行核心的流程(上篇)
249 1
|
消息中间件 算法 Java
面试官:Kafka和ES选主有什么区别?
Kafka 和 ES,作为大数据处理的中间件,分别用于流处理和全文检索。它们的选主(Kafka 的 Controller 和 ES 的 Master)都基于 Raft 算法实现一致性。Raft 算法通过选举确保分布式系统数据一致性,涉及领导者、追随者和候选人间的身份转换。当超过一半的节点投票给同一候选节点时,该节点成为新领导者。Kafka 和 ES 在此基础上可能有各自优化调整。更多关于 Raft 算法的详细流程和选举规则见原文。
208 2
|
Kubernetes 小程序 Docker
ChaosBlade安装问题之通过kubectl安装chaosblade-operator如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
|
Kubernetes Java 测试技术
ChaosBlade故障问题之支持JVM故障注入如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集: