ElasticSearch的排序和聚类时出现fielddata=true问题

ElasticSearch7.3学习(二十二)----Text字段排序、Scroll分批查询场景解析 scoll搜索会在第一次搜索的时候,保存一个当时的视图快照,之后只会基于该旧的视图快照提供数据搜索,如果这个期间数据变更,是不会让用户看到的。因为文档入倒排索引表时,分词存入,es无法知道此字段的真实值。这样的结果往往不准确,因为分词后是多个单词,再排序就不是我们想要的结果了。可以看到获取到了第一条的数据,获得的结果里面包含有一个scoll_id,下一次再发送scoll请求的时候,必须带上这个scoll_id,接下来获取第二条数据。结果是以分词后的第一个单词进行排序,排序结果不准确,所以不推荐使用。 阅读详情

遇到这个错误是因为你尝试对一个text类型的字段做排序,而text类型的字段是要分词的。 一来词典很大,性能会很差;二来排序结果是词典里的词,而并非整个text的内容。 出于这2点原因,ES5.x以后对于text类型默认禁用了fielddata,防止对text字段一些错误的操作(排序,聚合,script)而给heap造成很大的压力。
 
如果一定有对该字段按照文本字母序做排序的需求,可以将该字段定义为multi-filed,例如:


PUT my_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "city": {
          "type": "text",
          "fields": {
            "raw": { 
              "type":  "keyword"
            }
          }
        }
      }
    }
  }
}


上面的city是text类型,适合做全文搜索,然后排序的时候可以用其keyword类型即city.raw。  这样排序结果是正确的,并且keyword字段是通过doc values排序的,内存消耗远小于fielddata。

Elasticsearch Terms聚合五大陷阱与生产级避坑指南 Terms聚合是Elasticsearch中最常用的桶聚合,表面类似SQL的GROUP BY或Excel数据透视,实则基于倒排索引的近似采样机制。其底层依赖Lucene段文件的terms dictionary,不保证全局精确计数、跨分片排序可靠或语义一致性。常见问题包括shard级截断导致的精度丢失、多分片下doc_count求和失真、.keyword字段无法解决大小写/空格/国际化归一化、fielddata内存熔断引发静默截断,以及纯字面匹配带来的语义割裂。尤其在电商搜索分析、日志高频词统计、错误码归因等 阅读详情

相关推荐

【信息科学与工程学】计算机科学与自动化——第一百五十五篇 缓存系统设计03

编号366-380共15个条目,涵盖了SQL/NoSQL数据库、小文件、对象、向量、CDN、应用框架等各类数据对CPU、GPU、ASIC、FPGA、NPU、内存、SSD、HDD、RAID卡、操作系统、Redis、容器、MPP数据库、CDN等缓存硬件和软件的配置需求。:mark_cache_size,uncompressed_cache_size,merge_tree配置。:调整vm.dirty_ratio,增大vfs_cache_pressure,启用透明大页。

weixin_49199313的博客 227

更新fielddata为true_fielddata(字段数据)

fielddata(字段数据)所有字段是默认被 indexed(被索引的),这使得它们是可搜索的.可以在脚本中排序,聚合和获取字段值,但是需要不同的搜索模式.搜索需要回答一个问题 “哪个document(文档) 包含这个term(词条)”,然而排序和聚合需要回答一个不同的问题 " 这个字段在这个document(文档)中的值是多少?".许多字段可以使用 index-time,在磁盘上的 do...

weixin_42501130的博客 1811

在 Zemax 非序列模式下建立干涉仪模型

Zemax 利用其相干检测功能,将到达探测器的射线的能量相干地组合起来,同时考虑每条检测到的射线的幅度和相位。从对这些干涉条纹的定量评估来看,光学干涉仪具有广泛的应用,包括在天文学中用于测量天体的大小,在计量学中用于精确测量距离,在显微镜中用于提高分辨率,以及在物理和工程的各个领域中用于检测条件的微小变化。在光学干涉仪中,使用的是光波。非相干和相干相加的总功率是守恒的,但相干光束的峰值辐照度应该是非相干光束总和的 2 倍,这是理所当然的。请注意,条纹的缺失是显而易见的,因为不再从相干的角度观察探测器。

jkh920184196的博客 2380

es fielddata理解

在es中,text类型的字段使用一种叫做fielddata的查询时内存数据结构。当字段被排序,聚合或者通过脚本访问时这种数据结构会被创建。它是通过从磁盘读取每个段的整个反向索引来构建的,然后存存储在java的堆内存中。   fileddata默认是不开启的。Fielddata可能会消耗大量的堆空间,尤其是在加载高基数文本字段时。一旦fielddata已加载到堆中,它将在该段的生命周期内保留。此外...

F7ANTY的专栏 1556

【SpringBoot香樟转转】debugDay01

在学黑马程序员的苍穹外卖项目,刚开始学,想用maven编译一下代码,结果报错,找不到符号。本着先理解原则,看着能找到这个变量呀。

m0_72696598的博客 1737

英飞凌ADS开发环境搭建全流程:从安装到第一个程序烧录

本文详细介绍了英飞凌ADS开发环境搭建的全流程,包括环境准备、ADS安装与配置、MemTools烧录技巧等关键步骤。针对嵌入式开发者,特别提供了从安装到第一个程序烧录的实战指南,涵盖常见问题解决方案和优化建议,帮助开发者快速上手英飞凌AURIX系列微控制器的开发工作。

qsc901234的博客 333

Elasticsearch:fielddata 介绍

默认情况下,大多数字段都已编入索引,这使它们可搜索。 但是,脚本中的排序,聚合和访问字段值需要与搜索不同的访问模式。 搜索需要回答“哪个文档包含该术语?”这个问题,而排序和汇总则需要回答一个不同的问题:“此字段对该文档的值是什么?”。 大多数字段可以将索引时生产的磁盘doc_values用于此数据访问模式,但是文本(text)字段不支持doc_values。 替代的方案,文本(text)字段...

Elastic 中国社区官方博客 4991

`全网最细!! 入门必看Git教程链接:https://gitee.com/all-about-git`

全网 Git 入门教程 gitee.com。如果显示The requested URL returned error: 403错误,那就表示没有和window本地建立token令牌

qq_37855368的博客 3748

Elasticsearch聚合时fielddata=true或set

报错:Fielddata is disabled on text fields by default. Set fielddata=true on [name] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead. 翻译是:默.

weixin_59459355的博客 1325

Drupal远程代码执行漏洞(CVE-2018-7600)实战复现:从检测到写入WebShell的全过程

本文详细解析了Drupal远程代码执行漏洞(CVE-2018-7600)的实战复现过程,从环境搭建、漏洞检测到WebShell写入的全流程。该高危漏洞影响Drupal 6.x至8.x版本,允许攻击者未经授权执行任意代码。文章提供了多种POC构造方法和高级利用技巧,帮助安全研究人员深入理解漏洞原理并掌握验证技术。

weixin_29322553的博客 275

LLaMA Factory添加新模型template的实战解析

本文主要介绍了LLaMA Factory添加新模型template的实战解析,希望对使用大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 实战解析 2.1 检查代码 2.2 修改代码

herosunly的博客 19万+

elasticsearch中 fieldData

fieldData是干啥的? 当我们对text类型的字段进行首次聚类、排序、或者执行脚本的时候。将磁盘中的数据构建到内存够中。 默认情况下,大多数字段都已编入索引,这使它们可搜索。 但是,脚本中的排序,聚合和访问字段值需要与搜索不同的访问模式。 搜索需要回答“哪个文档包含该术语?”这个问题,而排序和汇总则需要回答一个不同的问题:“此字段对该文档的值是什么?”。 大多数字段可以将索引时生产的磁盘doc_values(doc_values | Elasticsearch Guide [8.1] | E

Angus 3143

基于深度学习的生活垃圾检测与分类系统:YOLOv5、YOLOv6、YOLOv7与YOLOv8实现

本项目的目标是开发一个基于YOLO系列模型的生活垃圾检测与分类系统。数据集准备与标注:收集并标注生活垃圾图像数据集。模型训练:使用YOLOv5、YOLOv6、YOLOv7、YOLOv8等深度学习模型训练垃圾分类系统。UI界面设计:设计一个简洁的用户界面,支持图像或视频的上传与垃圾分类结果展示。实时垃圾检测与分类:通过摄像头进行实时垃圾检测和分类。结果展示与保存:展示检测结果,支持用户保存分类后的图像或视频。

YOLO 705

java使用API调用ElasticSearch进行 基础CUDR 以及聚类时出现fielddata=true问题解决

maven 导入 <properties> <es-version>5.4.3</es-version> </properties> <dependencies> <dependency> <groupId>org.elasti...

沉淀的博客 1816

Android HAL 架构详解,底层开发不再难

HAL Binder 这套机制牛在哪?性能:一次拷贝,快如闪电。规范:HIDL 让接口定义整齐划一,维护省心。兼容:版本管理做得好,新老设备都能跑。有了这套通信体系,HAL 就像打了通脉,上下贯通,硬件操作变得丝滑无比。通信机制搭好了桥,接下来 HAL 得真正把手伸到硬件上。这部分是 HAL 的 “最后一公里”,直接决定硬件能不能被用起来。HAL 的接口定义是整个体系的灵魂,它决定了上层和底层怎么 “说话”。

大模型大数据攻城狮的专栏 1672

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java.lang.IllegalArgumentException: Fielddata is disabled on text fields by default. Set fielddata=t

java.lang.IllegalArgumentException: Fielddata is disabled on text fields by default. Set fielddata=true on [interests] in order to load fielddata in memory by uninverting the inverted index. Note that...

晴空马仔的博客 7963

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Elastic:开发者上手指南

你们好,我是Elastic的刘晓国。如果大家想开始学习Elastic的话,那么这里将是你理想的学习园地。在我的博客几乎涵盖了你想学习的许多方面。在这里,我来讲述一下作为一个菜鸟该如何阅读我的这些博客文章。 我们可以按照如下的步骤来学习: 1)Elasticsearch简介:对Elasticsearch做了一个简单的介绍 2)Elasticsearch中的一些重要概念:cluster,n..........................................................

Elastic 中国社区官方博客 17万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

比ES快5倍的搜索引擎选型指南:架构降维与场景适配

搜索引擎不是单一技术组件,而是数据模型、查询模式与业务SLA协同演化的结果。全文搜索的本质是倒排索引+相关性排序,而向量搜索则扩展了语义匹配能力;ElasticSearch作为通用分布式搜索平台,其性能瓶颈常源于JVM开销、分布式协调和过度设计的抽象层。真正实现‘快5倍’的关键,在于根据数据规模、更新频率、查询复杂度和延迟容忍度进行架构降维——例如用Redis Search替代内存敏感型实时检索,或以Meilisearch承载静态内容的高并发模糊搜索。本文结合电商、SaaS与内容平台真实案例,解析如何通过搜

weixin_34252686的博客 248

Hybrid RAG实战:语义搜索+关键词搜索双通道协同检索

Hybrid RAG是一种融合语义搜索与关键词搜索的混合检索范式,其核心原理在于利用关键词搜索保障‘刚性约束’(如地域、时间、实体精确匹配),同时借助语义搜索突破词汇表限制、理解同义表达与隐含语义。这种双通道协同机制显著提升了企业知识库、合同审查、硬件维修等场景下的召回准确率与业务可信度,尤其解决‘关键词全中但语义偏离’和‘语义相关却漏掉硬条件’两大典型困境。技术价值体现在工程可控性高、可解释性强、落地成本低,且天然适配Elasticsearch与FAISS等成熟组件。本文聚焦Hybrid RAG在真实产线

dienangpiao2051的博客 445

AI搜索性能优化五项关键技术:支撑千万级语义查询的工程实践

AI搜索系统在高并发下响应慢、成本高、扩展难,本质是向量计算与实时响应之间的矛盾。其核心原理在于解耦语义理解与检索执行,通过分层索引、查询分治、预计算嵌入、动态缓存键和渐进式召回等技术路径,实现算力卸载与路径压缩。这类优化不依赖大模型API或硬件堆砌,而是聚焦数据流断点进行精准重构,显著提升QPS与P95延迟稳定性。在电商、金融、知识库等需支持自然语言提问的真实场景中,已验证可使同等硬件下吞吐提升3.8倍、延迟下降77%。本文即围绕这五大可灰度、低代码、快见效的关键技术展开落地拆解。

weixin_30693683的博客 9230

es 设置 fielddata

1,在做聚合操作的时候会有以下错误 Fielddata is disabled on text fields by default. Set fielddata=true on [your_field_name] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. 修改fielddata =true POS

f335830104的博客 3706

设置 "fielddata": true

  }}}] lastShard [true]org.elasticsearch.transport.RemoteTransportException: [name_CentOSNode1][192.168.72.141:9300][indices:data/read/search[phase/query]]Caused by: java.lang.IllegalArgumentException...

大JAVA解决方案 9647

NEST 聚合报错以及日期格式

聚合报错,fielddata=true 发现是因为text类型的属性上,默认不会让你聚合,因为内存开销会很大。如果要对text类型属性使用聚合,那么需设置 如下,以dbname属性为例 PUT resource/_mapping/LogDotNetApi { "properties": { "dbname": { "type": "text", "fieldda...

陈豪骅的博客 1324

关于ElasticSearch的聚类时出现fielddata=true问题

在ElasticSearch中默认fielddata默认是false的,因为开启Text的fielddata后对内存的占用很高。 如果进行聚合查询时候: GET /megacorp/employee/_search { "aggs": { "all_interests": { "terms": { "field": "interests" } } } } ...

LiDong的博客 2832

更新fielddata为true_关于ElasticSearch的聚类时出现fielddata=true问题

在ElasticSearch中默认fielddata默认是false的,因为开启Text的fielddata后对内存的占用很高index:megacorptype:employee如果进行聚合查询时候:GET /megacorp/employee/_search{"aggs": {"all_interests": {"terms": { "field": "interests" }}}}返回错误码...

weixin_39551996的博客 306

ES- Set fielddata=true on [actorList.name] in order to load fielddata in memory by......

GET movie_index/_search { "aggs": { "b": { "terms": { "field": "actorList.name", "size": 10 } , "aggs": { "sum": { "sum": { "field": "doubanScore" } } } } }

Mr.Zheng的博客 3704
上一篇: "reason":"Fielddata is disabled on text fields by default. Set fielddata=true on [dataFlag] in order
下一篇: flood stage disk watermark [95%] exceeded on all indices on this node will marked read-only
qq_34412985
博客等级 码龄11年 143粉丝 983原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值