首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Lucene boolean OR查询评分是否偏向于有更多选择的术语

Lucene boolean OR查询评分是否偏向于有更多选择的术语
EN

Stack Overflow用户
提问于 2013-03-19 15:51:37
回答 1查看 416关注 0票数 0

为什么Lucene/Solr scorer对OR子句的权重进行求和。这是不平衡的查询评分对有更多的选择的术语。让查询词替代项的权重达到最大值不是更有意义吗?

下面是一个示例:

我在solr管理界面中运行: gucci (手提包、钱包或皮夹)

通过单击debug,我可以看到解析后的查询与预期一致:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"parsedquery":"text:gucci (text:handbag text:purse text:pocketbook)"

explain字段显示记分器正在进行(我在这里稍微简化一下):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
weight(gucci) + sum( weight(handbag) + weight(purse) + weight(pocketbook))

结果是,包含手袋、钱包和钱包的结果将比包含gucci和手袋的结果具有更高的分数。我认为这是违反直觉的。对我来说,OR意味着这些术语是等价的,而不是它们更重要。此外,我可以使用查询词提升来独立完成这项工作。

我用Edismax做了实验,它有类似的行为。

有没有一种方法可以让OR子句保留查询术语“重要性”?

EN

回答 1

Stack Overflow用户

发布于 2013-03-19 15:59:36

您可以尝试使用DisjunctionMaxQuery,并为析取设置不同的提升因子。看一下tieBreakMultiplier构造函数参数-它可以帮助实现您想要的结果。引用文档:

tieBreakerMultiplier <..> value <..>表示,得分较低的字段中出现的10个单词与得分较低的字段

中的唯一单词一样好

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15504198

复制
相关文章
干货 | ElasticSearch相关性打分机制
作者简介 孙咸伟,后端开发一枚,在携程技术中心市场营销研发部负责“携程运动”项目的开发和维护。 携程运动是携程旗下新业务,主要给用户提供羽毛球、游泳等运动项目的场馆预定。最近我们在做场馆搜索的功能时,接触到elasticsearch(简称es)搜索引擎。 我们展示给用户的运动场馆,在匹配到用户关键词的情况下,还会综合考虑多种因素,比如价格,库存,评分,销量,经纬度等。 如果单纯按场馆距离、价格排序时,排序过于绝对,比如有时会想让库存数量多的场馆排名靠前,有时会想让评分过低的排名靠后。有时在有多家价格相同的
携程技术
2018/03/16
8.5K1
干货 | ElasticSearch相关性打分机制
Lucene强大的查询引擎
Lucene的主要模块有Analysis模块、Index模块、Store模块、QueryParser模块、Search模块和Similarity模块,各模块的功能分别汇总如下。 ① Analysis模块:主要负责词法分析及语言处理,也就是我们常说的分词,通过该模块可最终形成存储或者搜索的最小单元Term。
院长技术
2021/02/19
3540
Lucene 查询语法备忘
​​https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax​​
保持热爱奔赴山海
2022/07/28
4370
Lucene查询语法详解
Lucene查询 Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询。 下面着重介绍下Lucene支持的查询: Terms词语查询 词语搜索,支持 单词 和 语句。 单词,例如:"test","hello" 语句,例如:"hello,world!" 多个词语可以通过操作符,连接成更复杂的搜索逻辑。 Field字段查询 Lucene支持针对某个字段进行搜索,语法如: title:hello 或者 title:"hello title" 搜索语句时需要加上双引号,否则
用户1154259
2018/01/17
5K0
Elasticsearch探索:相关性打分机制 API
官网地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html
HLee
2020/12/22
1.8K0
Elasticsearch探索:相关性打分机制 API
除了Notepad++,我们有更多更好的选择!
很多人在初涉编程时可能都接触过Notepad++这个软件,并一直使用这个文本文档编辑工具。然而,在其最新的7.8.1版本中,该软件作者借此学术工具宣扬政治观点,散布关于新疆自治区的不实谣言,严重违反我国法律法规,伤害我们民族感情。而且,事实上Notepad++这个工具也并非十分好用,在此推荐给大家更多功能强大的实用编程工具。
SYSU星空
2022/05/05
6210
除了Notepad++,我们有更多更好的选择!
Lucene:Grouping组查询
lucene的联想词是在org.apache.lucene.lucene-grouping包下边,提供了组查询功能的支持。
HLee
2020/12/31
2.1K0
Lucene:Grouping组查询
快速学习Lucene-Lucene索引库查询
对要搜索的信息创建Query查询对象,Lucene会根据Query查询对象生成最终的查询语法,类似关系数据库Sql语法一样Lucene也有自己的查询语法,
cwl_java
2019/12/25
5420
Lucene查询过程介绍
“ Lucene索引过程与相关的简介上一篇<Lucene简介与索引过程介绍>我们已经了解过,本篇我们来讲解Lucene查询过程。查询是用户把查询条件获取到目标文档的一个过程。通过用户输入的词Lucene负责匹配相关度最高的文档给予渲染输出。”
CainGao
2020/04/14
5820
Lucene范围查询原理(<Lucene6.0)
之前一直想看一下lucene range查询的底层原理, 先上网找了下相关资料, 发现非常混乱, 主要是因为lucene的范围查询曾经经历过两个不同的阶段:
叫我家宝
2022/02/25
1.6K0
【人工智能】机器学习的框架偏向于Python原因
前言 主要有以下原因: 1. Python是解释语言,程序写起来非常方便 写程序方便对做机器学习的人很重要。 因为经常需要对模型进行各种各样的修改,这在编译语言里很可能是牵一发而动全身的事情,Python里通常可以用很少的时间实现。 举例来说,在C等编译语言里写一个矩阵乘法,需要自己分配操作数(矩阵)的内存、分配结果的内存、手动对BLAS接口调用gemm、最后如果没用smart pointer还得手动回收内存空间。Python几乎就是import numpy; numpy.dot两句话的事。 当然现在
小莹莹
2018/04/19
7500
【人工智能】机器学习的框架偏向于Python原因
lucene的高效数据查询
lucene是一个常用的并发处理时的全局搜索引擎,它和目前搜索引擎采取的处理大量查询数据的思路都是,事先把跟关键词相匹配数据存储起来,查找的时候直接把存储好的数据进行返回。
Tim在路上
2020/08/04
1K0
用mysql查询某字段是否有索引
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/113450.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/07
4.4K0
用mysql查询某字段是否有索引
javabean:boolean和Boolean类型的getter方法名是有区别的
10km
2018/01/03
2K0
Lucene索引库的维护和查询
是否分析:是否对域的内容进行分词处理。前提是我们要对域的内容进行查询。 是否索引:将Field分析后的词或整个Field值进行索引,只有索引方可搜索到。 比如:商品名称、商品简介分析后进行索引,订单号、身份证号不用分析但也要索引,这些将来都要作为查询条件。 是否存储:将Field值存储在文档中,存储在文档中的Field才可以从Document中获取 比如:商品名称、订单号,凡是将来要从Document中获取的Field都要存储。
暴躁的程序猿
2022/03/24
5160
利用Boost影响Lucene查询结果的排序
以下代码在Lucene2.1下通过,主要是通过设置Document的Boost来影响文档的权重,以达到控制查询结果顺序的目的(前提是不利用Sort排序的情况下): private void btnSearch_Click(object sender, EventArgs e)         {             RAMDirectory ramDir = new RAMDirectory();             IndexWriter iw = new IndexWriter(ramD
菩提树下的杨过
2018/01/22
8810
【应用】信用评分卡 : 变量选择
下面的故事可以追溯到我开始从物理到商业的转变。我在周五晚上的派对上遇到了这位投资银行家。喝完几品脱啤酒后,他的情绪变得有些阴沉,他告诉我他是如何讨厌他的工作。然而,他有一个计划知道工作到45岁退休。然后他会做一切让他开心的事情。我很困惑,那么一个人怎么能从一种情感(幸福)中摆脱这么多年,并在以后重新发现?我想知道幸福的秘诀 - 玫瑰上的雨滴和小猫上的胡须。一个人的幸福是一件棘手的事情;然而,我将在后面的关于逻辑回归的文章中尝试解决这个问题。现在,让我们尝试探索国家如何衡量其人民的集体福利。我将利用这一人口福祉主题来探索分析记分卡开发中的一个有趣话题:变量选择。
陆勤_数据人网
2018/10/08
7790
【应用】信用评分卡 : 变量选择
第13篇-Elasticsearch查询-术语级查询
另外Elasticsearch入门,我强烈推荐ElasticSearch新手搭建手册和这篇优秀的REST API设计指南 给你,这两个指南都是非常想尽的入门手册。
普通人刘大
2020/06/13
2.3K0
PostgreSQL 高可用更多选择更多欢乐
postgresql 的复制功能是比较全面的,物理流,逻辑复制,复制槽,全INSTANCE ,单表。但最近群里面的经常会问一个问题,到底高可用的方式PG 用哪个,哪个好用,你们用哪个诸如此类的问题。
AustinDatabases
2019/08/06
2.1K0
PostgreSQL 高可用更多选择更多欢乐
Lucene 高阶查询的六脉神剑 —— QueryParser
上篇我们介绍了 Lucene 多样的查询模式,每一种都是相互独立的用来解决特定查询目标的 Query 对象。本节我们要将这些查询模式使用 QueryParser 组合起来进行合并查询 —— 用一个文本字符串表达式来表示所有的查询模式。
老钱
2019/09/17
2.6K1
Lucene 高阶查询的六脉神剑 —— QueryParser

相似问题

分级评分Lucene,或术语处理

10

Lucene术语查询

20

短语查询的Lucene评分

12

术语与术语的评分查询不同

11

Lucene的评分如何取决于查询的相对位置?

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文