ES按名称查询数据时,相同名称的数据评分不同问题

elasticsearch基本查询三(英文分词)match查询 本文全面解析Elasticsearch查询DSL的核心概念与实战应用,重点对比全文查询(match、match_phrase等)和精确查询(term、terms等)的关键差异。文章通过丰富示例演示了基础查询语法、跨字段搜索、短语匹配等技巧,深入剖析了相关性评分机制和查询性能优化策略,并提供布尔查询组合、范围过滤等复杂业务场景的解决方案。最后总结了5条最佳实践:优先使用filter上下文、合理选择查询类型、善用布尔查询、优化查询性能、掌握排查工具,帮助开发者构建高效的Elasticsearch搜索方案。 阅读详情

问题原因:es索引是分片存储的,查询计算评分的时候,是每个分片单独计算的,所以会出现相同名称的人员评分不同的问题、

解决方案:

1、与产品沟通,当数据量足够大时,每个分片数据近似相同,则各个分片计算出来的评分会很相近

2、查询的时候增加查询条件(dfs_query_then_fetch),不让各个分片单独计算得分,而是统一计算,这样会有一定的性能影响,官方文档也不建议这么做https://www.elastic.co/guide/en/elasticsearch/guide/2.x/relevance-is-broken.html

searchRequest.searchType("dfs_query_then_fetch");
PUT /test2
{
 "settings": {
   "number_of_shards": 5,
   "number_of_replicas": 1
 }, 
  "mappings": {
    "test2": {
      "dynamic_templates": [
        {
          "notanalyzed": {
            "match": "*",
            "match_mapping_type": "string",
            "mapping": {
              "type": "text",
                "analyzer": "ik_max_word",
              "search_analyzer": "ik_smart"
            }
          }
        }
      ]
    }
  }
}

POST /test2/_bulk
{"index":{"_index":"test2","_type":"test2","_id":"d483a79610b943f9892f479e1e4df8081"}}
{"mediaTag":"美国,英国,船"}
{"index":{"_index":"test2","_type":"test2","_id":"d483a79610b943f9892f479e1e4df8082"}}
{"mediaTag":"美国,英国"}
{"index":{"_index":"test2","_type":"test2","_id":"d0ce8c0651024ff5b1114ec263384a7c2"}}
{"mediaTag":"美国,英国,士大夫,船"}
{"index":{"_index":"test2","_type":"test2","_id":"d0ce8c0651024ff5b1114ec263384a7c1"}}
{"mediaTag":"美国,英国,士大夫"}
{"index":{"_index":"test2","_type":"test2","_id":"40fa46a395674f0fab4dcac45d0be2cd3"}}
{"mediaTag":"美国,船"}
{"index":{"_index":"test2","_type":"test2","_id":"25854d6cdd3b424e9ac43f0efd29afd04"}}
{"mediaTag":"英国,船,士大夫"}

GET /test2/_search?search_type=dfs_query_then_fetch
{
  "query": {
    "bool": {
      "must": [
        {"match": {
          "mediaTag": "英国,船"
        }}
      ]
    
    }
    
  }
}
Elasticsearch 查询性能优化:constant_score 与 filters 深度解析 摘要:本文深入解析Elasticsearch中constant_score查询与filters的性能优化机制。通过对比查询与过滤的核心差异,重点阐述constant_score避免相关性评分计算的原理及其在固定评分场景的应用优势。同时详细剖析filters的位图缓存机制和复用特性,提供包含bool查询filter子句的现代实践方案。文章通过电商、日志分析等典型场景,给出"优先使用过滤器+合理应用constant_score"的核心优化原则,并附有性能监控方法和配置调优建议,帮助开发者实现 阅读详情

相关推荐

Elasticsearch自定义评分的多种方法

本文介绍了在Elasticsearch中实现自定义评分的三种常见方法:函数评分、脚本评分和Boosting查询。在本文中,我们将探讨Elasticsearch中实现自定义评分的几种方法,并提供相应的源代码示例。它允许我们定义一个或多个评分函数,并根据这些函数的结果来影响搜索结果的排序。它允许我们使用脚本来计算文档的评分,并根据评分来调整搜索结果的排序。同时,我们定义了一个评分函数,使用文档的"views"字段来计算评分。字段,我们定义了一个脚本评分,使用文档的"views"字段来计算评分。

BugCrusher的博客 371

Elasticsearch:搜索相同内容,但评分不同,排序混乱问题解决

问题 针对搜索结果,需要根据相关度智能排序 但是对于某些文本内容相似,搜索得分一致,需要启用其他排序规则,例如时间 后面又发现,对于这些相似的文本,部分文本得分score和其他文本不同,导致排序排在了后面 以以下数据为例,对于模糊搜索“上半年经济运行”需要根据标题检索,然后得分相同的再根据时间倒序排序。但是实际上2009年的出现在第一条,2021年的在第二条,这是不允许的 [ { "createDate": "2009-07-21", "id": "7917561

闫玉林的博客 2244

Go搜索引擎:Elasticsearch与Meilisearch

Elasticsearch用olivere/elastic集成,mapping里数值字段用数值类型,文本搜索用text,精确匹配用keyword,复杂查询用bool组合must和filter。Meilisearch单二进制部署,HTTP API集成简单,适合中小数据量的即时搜索。mapping类型设错会导致查询无结果,上线前用少量数据验证。选型看数据量和搜索复杂度,别对小数据量上ES,也别对大数据量指望LIKE。

白话机器学习 177

Elasticsearch 相同内容文档,不同score(评分)的奇怪问题

原文:http://stackoverflow.com/questions/14580752/elasticsearch-gives-different-scores-for-same-documents 由于每个shard是一个独立的lucene 实例,所以TF/IDF也是独立计算的,每个分片的文章数量不同 如果两个相同内容落在了不同分片上,完全可能给出不同的评分 所以确保每个分片上有足够多的...

weixin_33912453的博客 832

护网日志分析基础

简要介绍日志分析,给出日志分析的步骤和思路。要求根据日志中的字符串特征,识别攻击者的攻击工具;根据日志中的行为特征,确定攻击者可能的攻击手段等。总结归纳护网中常见的中间件Tomcat、Apache、Weblogic、Nginx、Apache、IIS、MySQL、SQL Server、Oracle的日志路径和日志配置文件路径等。

m0_59302403的博客 3694

深入浅出SSD:固态存储核心技术、原理与实战(文末赠书)

作为经典畅销书的升级版,本书在第1版的基础上新增了大量新知识(如闪存、UFS、测试、文件系统等),并改写或删减了许多过时或不适用的内容,总修改量超过60%。本书由SSD技术社区SSDFans的核心团队成员联合业界、高校SSD方面的专家共同完成,相对于第1版,内容更全面、更新,也更有深度。本书从产品、技术和应用3个维度展开,全面、详细讲解了SSD的发展历史、产品形态、工作原理、整体架构,以及各个功能模块的原理和使用,从SSD的前端接口协议到FTL算法,再到后端的闪存和纠错,以及测试,本书都有涉及。

阿玥的小博客 3121

Elasticsearch 学习踩坑之路—相同数据不同分数原因

最近在学习Elasticsearch,进行match查询时发现数据都是同样的内容,但是命中的结果得分却不相同,感到很困惑,示例如下: { "took" : 1, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 ...

李小白的博客 2804

Oracle EBS MRP 模块测试记录

MRP 模块测试记录        构思:创建Shirt成品物料,它由Cloth和Button组成。1*Shirt=1*Cloth+8*Button。        首先创建这三个物料(复制模板创建),并分配给T02。        创建BOM,将这三个物料关联起来。        分别创建资源(人工和设备)制造Cloth和Button。        分别创建两个部门(HumanDep和Mach

NetSuite 张老师 8164

elastic相同查询文本,score不同

问题:es查询相同文本,返回的score不同 { "query": { "bool": { "must": [ { "match": { "shopName": "sock" } } ] } }, "sort": [ { "_score": { "order": "desc" } } ], "_

hifantuantuan的博客 639

小白学习微信小程序的图像识别和文字识别技术

其中,type参数指定了识别的类型,imageUrl参数指定了图片的地址,success回调函数用于处理识别成功的结果,fail回调函数用于处理识别失败的情况。其中,type参数指定了识别的类型,imageUrl参数指定了图片的地址,success回调函数用于处理识别成功的结果,fail回调函数用于处理识别失败的情况。下面,我们来实现一个文字识别的应用案例,可以识别一张图片中的文字,并将识别结果显示到小程序的页面上。在小程序中,也可以使用微信提供的文字识别接口,实现文字识别的功能开发。

qq_67153941的博客 1643

锂电池寿命预测 | Pytorch实现基于Transformer 的锂电池寿命预测(NASA数据集)

锂电池寿命预测 | Pytorch实现基于Transformer 的锂电池寿命预测(NASA数据集)

算法如诗的博客 5582

es每次结果不一样_Elasticsearch 分页坑之---评分一致导致数错乱

1、背景介绍最近搞es搜索,match查询默认按照评分排序,发现有一部分数据评分一致,一开始也没注意,客户端调用分页的时候,突然发现数据重复错乱很严重。挖槽顿时觉得,挖槽怎么那么坑。from size 做分页,每次都是重新加载,所以评分一致的数据,顺序有可能会变化。在分页的临界点,容易导致数据重复。2、寻求真经2.1 百度谷歌这个时候,度娘已经没用了,度娘都是什么深度分页,浅分页,不好意思,我这边...

weixin_39743603的博客 3546

如何在Ubuntu 22.04系统上安装CUDA 12.9

本文提供Ubuntu22.04系统上安装CUDA12.9的简明指南:1)确认已安装适配575驱动;2)清理旧版本后安装必需依赖库;3)通过deb包方式添加英伟达源并安装CUDA12.9工具包;4)配置环境变量;5)通过nvcc-V和nvidia-smi命令验证安装。文中包含常见问题解决方法及多显卡使用说明,全程约需10分钟完成安装。

2501_93651177的博客 1479

2025最新ES面试题整理(Elasticsearch面试指南系列)

Elasticsearch经典面试题:10/50

Elastic开源社区 2万+

AUTOSAR 导入DBC ISOLAR工程配置

ISOLAR工程配置-dbc导入

汽车电子电气 2406

“反激电源”是AC/DC隔离电源还是DC/DC隔离电源?

所以在一些场景,我们的输入电压是一个DC,但是我们仍然需要隔离电源的需求,我们就会只采用图9.2的右半部分。在这个场景下“反激电源”是DC/DC。所以此AC/DC的本质是将AC变成高压的DC之后,用带隔离变压器的反激式开关电源产生一个隔离的、稳定的直流电压。一般在讲述各种电源的拓扑的文章和书籍都是在讲述AC/DC的电源拓扑分类的时候,讲述Flyback。反激式开关电源是指使用反激高频变压器隔离输入输出回路的开关电源,反激式隔离变压器开关电源重点表述的是开关电源包含变压器的拓扑结构。

qq_43416206的博客 1290

ES多字段匹配查询时的权重控制

我们在使用ES进行查询时常常遇到这样的场景:需要根据用户输入的查询关键字同时去匹配多个字段,并且希望对匹配字段的权重做不同的设置,比如同时去匹配公司名称和公司简介,这里一般需要提升公司名称匹配的权重,这样得出的相关性评分才会更准确。 在ES中,我们可以通过boost参数来控制多字段查询的权重。

弹指天下 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Mysql 数据库就可以查询数据,为什么还要使用搜索引擎 ES,Mysql 数据库主要用于数据持久化存储,ES 作为专业搜索引擎功能更强大性能更高

# Mysql 数据库就可以查询数据,为什么还要使用搜索引擎 ElasticSearch # 术业有专攻,Mysql 数据库主要用于数据持久化存储,ES 作为专业搜索引擎功能更强大效率更高 # 输入【手机256小米白色17Pro】如何查询出【小米17Pro 新品5G手机 小米手机 白色 12GB+256GB 官方标配【全国补贴】】

道友 1046

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Elasticsearch(ES)概述

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。Elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域。Elasticsearch是。

m0_71484388的博客 1690

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Elasticsearch:深入理解 Elasticsearch 查询:过滤器查询 vs 全文搜索

Elasticsearch 现在适合许多用途,有时很难理解什么是最好的工具。我希望你记住的主要事情是,你并不总是需要使用最高级的功能来解决简单的问题。如果你不需要相关性分数来检索你的数据,请尝试切换到过滤器上下文。此外,了解 Elasticsearch 的底层工作原理也很重要,因此我建议你充分了解分词器的功能。Elasticsearch 中有更多的查询类型。我试图描述最常用的。我希望你喜欢它。

Elastic 中国社区官方博客 2812

分布式搜索引擎elasticsearch(一)

es

weixin_50458070的博客 1685

分布式搜索引擎-Es01

这完全是我自己想出来的,我太开心啦,哈哈哈:1.概述:elasticsearch是一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能比如:elastic stack(ELK)是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch,这是这个技术栈的基本架构,数据可视化,数据抓取的技术栈不一定要依靠这三个,但数据检索es是必不可少的。

qq_66246715的博客 620

ElasticSearch(七)— 相关性检索和组合查询

全文检索与数据库查询的一个显著区别, 就是它并不一定会根据查询条件做完全精确的匹配。除了模糊查询以外,全文检索还会根据查询条件给文档的相关性打分并排序,将那些与查询条件相关性高的文档排在最前面。相关性( Relevance)或相似性(Similarity)是指两个事物间相互关联的程度,在检索领城特指检索请求与检索结果之间的相关程度。在 Elaticsearch 返回的每条结果中都会包含一个_ score 字段,这个字段的值就是当前文档匹配检索请求的相关性评分,我们也可以称为相关度。

敲代码的小小酥的博客 2472

ElasticSearch 实战: ES 术语

以上是Elasticsearch中一些关键术语的概述,理解这些术语有助于深入理解和操作Elasticsearch。在实际使用中,还需结合官方文档和实践,进一步掌握其详细特性和用法。Elasticsearch(ES)作为一款分布式全文搜索引擎,涉及诸多专有术语和概念。

qq_33240556的博客 1144

Elasticsearch 基本使用(三)条件查询

上面两条数据的 address 的相同点就是 都有244。不对条件值分词,直接拿到文档里面找;在实际使用中,往往是在多个条件下查询数据。的关系在文档倒排索引内进行查询。文档字段包含这个词就能匹配。match 匹配字段,

冰糖的博客 5488
上一篇: docker_mysql 修改密码
下一篇: ElasticSearch条件更新数据
nddjava
博客等级 码龄16年 15粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值