news 2026/4/23 13:47:36

ES理论:索引字段类型选择

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ES理论:索引字段类型选择

文章目录

  • 前言
  • 汇总
  • 索引配置项设计
  • 索引字段类型
    • keyword
    • text类型
    • 多字段映射 (Multi-fields)
    • **path_analyzer**
    • 数值类型 float
    • 日期类型
    • tags字段设计
    • 自定义路径分析器
  • 资料获取

前言

博主介绍:✌目前全网粉丝4W+,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。

涵盖技术内容:Java后端、大数据、算法、分布式微服务、中间件、前端、运维等。

博主所有博客文件目录索引:博客目录索引(持续更新)

CSDN搜索:长路

视频平台:b站-Coder长路

汇总

  1. keyword vs text
    • keyword:精确匹配,用于过滤、聚合、排序
    • text:全文搜索,用于内容检索
  1. 数值类型选择
    • integer:整数值,如状态码、等级
    • long:大数值,如文件大小、价格
    • date:时间日期,支持范围查询

索引配置项设计

"settings":{"number_of_shards":15,"number_of_replicas":1,"refresh_interval":"30s"}
  • shards: 15 - 数据分片数,影响并行处理能力
  • replicas: 1 - 每个分片的副本数,影响高可用性
  • refresh_interval: 30s - 索引刷新间隔,影响数据实时性

索引字段类型

keyword

keyword类型:

"id":{"type":"keyword"}
  • 含义:用于精确值匹配,不分词
  • 适用场景:ID、状态码、标签等需要精确匹配的字段
  • 特点:支持聚合、排序,性能优于text类型

text类型

"fileName":{"type":"text","analyzer":"ik_max_word","search_analyzer":"ik_smart"}
  • 含义:全文搜索字段,会被分词
  • analyzer:索引时使用的分词器
  • search_analyzer:搜索时使用的分词器
  • ik_max_word:细粒度分词
  • ik_smart:粗粒度分词

多字段映射 (Multi-fields)

fileName的多字段定义:

"fileName":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256},"raw":{"type":"text","analyzer":"standard"}}}
  • fileName:主字段,使用IK中文分词
  • fileName.keyword:keyword子字段,用于精确匹配、聚合
  • fileName.raw:使用标准分词器的text子字段
  • ignore_above: 256 - 超过256字符的不会被索引

path_analyzer

"filePath":{"type":"text","analyzer":"path_analyzer","fields":{"keyword":{"type":"keyword"}}}
  • path_analyzer:自定义路径分析器,用于文件路径的层次化搜索
  • 可以搜索如/home/user/documents/并匹配子路径

数值类型 float

"fileSize":{"type":"float"}
  • float:单精度浮点数,适合文件大小存储

日期类型

"updateTime":{"type":"date","format":"yyyy-MM-dd HH:mm:ss||epoch_millis"}
  • format:支持多种日期格式
  • yyyy-MM-dd HH:mm:ss:字符串格式
  • epoch_millis:时间戳格式

tags字段设计

"tags":{"type":"keyword","fields":{"text":{"type":"text","analyzer":"ik_smart"}}}
  • tags:keyword类型,用于精确标签匹配
  • tags.text:text类型,用于标签的全文搜索

自定义路径分析器

"analysis":{"analyzer":{"path_analyzer":{"type":"custom","tokenizer":"path_tokenizer"}},"tokenizer":{"path_tokenizer":{"type":"path_hierarchy"}}}
  • path_hierarchy:专门用于路径层次结构的tokenizer
  • 例如/a/b/c会被分词为:/a,/a/b,/a/b/c

资料获取

大家点赞、收藏、关注、评论啦~

精彩专栏推荐订阅:在下方专栏👇🏻

  • 长路-文章目录汇总(算法、后端Java、前端、运维技术导航):博主所有博客导航索引汇总
  • 开源项目Studio-Vue—校园工作室管理系统(含前后台,SpringBoot+Vue):博主个人独立项目,包含详细部署上线视频,已开源
  • 学习与生活-专栏:可以了解博主的学习历程
  • 算法专栏:算法收录

更多博客与资料可查看👇🏻获取联系方式👇🏻,🍅文末获取开发资源及更多资源博客获取🍅

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 13:43:47

【强烈收藏】大模型RAG技术入门到精通:解决AI“幻觉“的终极方案

RAG技术是将信息检索与文本生成相结合的创新技术,通过引入外部知识库提升大模型效果。文章详细介绍了RAG的定义、原理、系统架构和工作流程,从朴素RAG到GraphRAG的发展历程,以及提高答案准确性、实时更新知识等优势。同时分析了检索质量、计算…

作者头像 李华
网站建设 2026/4/23 13:44:13

【Vue.js:构建现代Web应用的渐进式框架--web技术栈】

一、Vue.js的核心哲学 1.1 渐进式框架设计 Vue.js最大的特色是其渐进式架构设计。与其他全功能框架不同,Vue允许开发者从核心库开始,根据项目需求逐步添加生态系统中的工具和功能: 核心库:声明式渲染和组件系统路由:Vu…

作者头像 李华
网站建设 2026/4/23 11:46:27

加密PDF解析的Dify内存占用(专家级调优指南,仅限内部分享)

第一章:加密PDF解析的Dify内存占用问题综述 在使用 Dify 平台处理加密 PDF 文件的解析任务时,部分用户反馈系统出现显著的内存占用上升现象,严重时可导致服务响应延迟甚至进程崩溃。该问题主要出现在高并发或大文件批量处理场景中&#xff0c…

作者头像 李华
网站建设 2026/4/23 11:47:09

Pytest实践:Python测试技术基础知识

一、简介 在软件开发领域,确保代码的正确性和稳健性至关重要。这就是软件测试发挥作用的地方。Python 是一种通用且广泛使用的编程语言,提供了大量的工具和库来帮助测试过程。 其中,Pytest就是一个很好用的测试框架,可以在 Pyth…

作者头像 李华
网站建设 2026/4/23 11:52:16

没有中兴的智谱,被民间华强北盯上了

开源之后,市场能拼出一部“AI手机”吗?作者|王浩然编辑|古廿最近智谱的广告出现在机场广告牌,打出了一整套AI叙事的新标签:“有的AI,提供情绪价值”“智谱AI,提供商业价值”。配合上醒目的LOGO,…

作者头像 李华
网站建设 2026/4/23 11:45:47

《#{} vs ${}:MyBatis 里这俩符号,藏着性能与安全的 “生死局”》

1.多表查询多表查询和单表查询类似,只是SQL不同⽽已数据准备:对应Model:数据查询SQL:补充实体类:接⼝定义:字段与实体类属性不一致的解决方式:当数据库字段名与实体类属性名不匹配时,可通过ResultMap(自定义映射关系)或…

作者头像 李华