news 2026/4/20 12:21:17

实战教程:Elasticsearch 数据索引与搜索全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
实战教程:Elasticsearch 数据索引与搜索全流程

实战教程:Elasticsearch 数据索引与搜索全流程

    • 一、前置说明:基础概念与环境
      • 1.1 核心概念
      • 1.2 环境要求
    • 二、操作流程总览:索引+搜索标准流程图
    • 三、索引操作:创建索引 + 插入数据(核心步骤)
      • 3.1 操作1:创建索引(相当于建库)
      • 3.2 操作2:单条数据索引(插入文档)
      • 3.3 操作3:批量数据索引(批量插入)
    • 四、搜索操作:ES 核心搜索语法(最全常用场景)
      • 4.1 操作1:查询所有文档(基础搜索)
      • 4.2 操作2:全文检索(关键词搜索,最常用)
      • 4.3 操作3:精确匹配(不分词)
      • 4.4 操作4:多条件组合搜索(bool查询)
      • 4.5 操作5:高亮搜索(关键词标红)
      • 4.6 操作6:分页 + 排序搜索
    • 五、数据修改与删除:索引维护操作
      • 5.1 修改数据(更新文档)
      • 5.2 删除数据
      • 5.3 删除索引
    • 六、索引+搜索完整执行流程(底层原理)
    • 七、高频搜索语法总结
    • 八、总结

🌺The Begin🌺点点关注,收藏不迷路🌺

一、前置说明:基础概念与环境

1.1 核心概念

  1. 索引(Index):相当于MySQL的数据库,用于归类数据
  2. 文档(Document):相当于MySQL的一行数据,以JSON格式存储
  3. 字段(Field):文档中的属性,相当于MySQL的列
  4. RESTful API:ES通过GET/PUT/POST/DELETE请求操作数据

1.2 环境要求

  • 已安装 Elasticsearch(本文使用7.x/8.x通用版本)
  • 可使用Postman/Kibana Dev Tools/Curl发送请求
  • 访问地址:http://localhost:9200

二、操作流程总览:索引+搜索标准流程图

创建索引

插入文档/索引数据

刷新索引

执行搜索查询

获取/解析结果


三、索引操作:创建索引 + 插入数据(核心步骤)

3.1 操作1:创建索引(相当于建库)

作用:提前定义索引名称、字段类型、分词规则(推荐手动创建)

请求方式:PUT
请求地址http://localhost:9200/user
请求体

{"settings":{"number_of_shards":1,// 主分片数量"number_of_replicas":0// 副本数量},"mappings":{"properties":{"name":{"type":"text"},// 全文检索字段"age":{"type":"integer"},"city":{"type":"keyword"},// 精确匹配字段"intro":{"type":"text","analyzer":"ik_max_word"}// 中文分词}}}

成功返回"acknowledged": true


3.2 操作2:单条数据索引(插入文档)

作用:向索引中添加JSON格式数据

请求方式:POST
请求地址http://localhost:9200/user/_doc/1(1为文档ID)
请求体

{"name":"张三","age":25,"city":"北京","intro":"我是一名后端开发工程师,擅长Java和Elasticsearch"}

成功返回"result": "created"


3.3 操作3:批量数据索引(批量插入)

作用:一次性插入多条数据,提升效率

请求方式:POST
请求地址http://localhost:9200/user/_bulk
请求体

{"index":{"_id":"2"}}{"name":"李四","age":28,"city":"上海","intro":"前端开发工程师,精通Vue和React"}{"index":{"_id":"3"}}{"name":"王五","age":23,"city":"北京","intro":"测试工程师,专注自动化测试"}

四、搜索操作:ES 核心搜索语法(最全常用场景)

4.1 操作1:查询所有文档(基础搜索)

请求方式:GET
请求地址http://localhost:9200/user/_search
请求体

{"query":{"match_all":{}}}

4.2 操作2:全文检索(关键词搜索,最常用)

作用:分词匹配,适合标题、简介、内容搜索
示例:搜索intro中包含工程师的文档

{"query":{"match":{"intro":"工程师"}}}

4.3 操作3:精确匹配(不分词)

作用:匹配完整值,适合城市、ID、状态等字段
示例:搜索city北京的用户

{"query":{"term":{"city":"北京"}}}

4.4 操作4:多条件组合搜索(bool查询)

逻辑

  • must:必须满足(AND)
  • should:满足其一(OR)
  • filter:过滤,不计算得分

示例:北京 + 年龄>25 + 包含开发

{"query":{"bool":{"must":[{"term":{"city":"北京"}},{"match":{"intro":"开发"}}],"filter":[{"range":{"age":{"gt":25}}}]}}}

4.5 操作5:高亮搜索(关键词标红)

作用:搜索结果中给关键词添加标签,前端直接展示高亮

{"query":{"match":{"intro":"工程师"}},"highlight":{"fields":{"intro":{}}}}

4.6 操作6:分页 + 排序搜索

适用场景:列表分页展示

{"query":{"match_all":{}},"sort":[{"age":"desc"}],"from":0,"size":2}

五、数据修改与删除:索引维护操作

5.1 修改数据(更新文档)

请求方式:POST

{"doc":{"age":26}}

5.2 删除数据

请求方式:DELETE
http://localhost:9200/user/_doc/1

5.3 删除索引

请求方式:DELETE
http://localhost:9200/user


六、索引+搜索完整执行流程(底层原理)

写入数据:索引文档

分词处理

生成倒排索引

存储到分片

搜索数据:输入关键词

分词解析

查询倒排索引

匹配文档ID

返回结果+排序高亮


七、高频搜索语法总结

搜索类型关键字适用场景
查询所有match_all列表展示
全文检索match中文搜索、模糊匹配
精确匹配term城市、状态、ID
范围查询range年龄、价格、时间
组合查询bool多条件筛选
高亮展示highlight搜索结果关键词标红
分页排序from/size/sort分页列表

八、总结

  1. 索引数据:先创建索引(定义结构)→ 单条/批量插入JSON文档
  2. 搜索数据:使用match/term/bool实现全文、精确、组合搜索
  3. 核心能力:分词检索、毫秒级响应、高亮、分页、聚合分析
  4. 最佳实践text用于全文搜索,keyword用于精确匹配


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

Wifi-Hacking高级技巧:绕过MAC过滤和隐藏SSID的无线网络

Wifi-Hacking高级技巧:绕过MAC过滤和隐藏SSID的无线网络 【免费下载链接】Wifi-Hacking Cyber Security Tool For Hacking Wireless Connections Using Built-In Kali Tools. Supports All Securities (WEP, WPS, WPA, WPA2/TKIP/IES) 项目地址: https://gitcode.…

作者头像 李华
网站建设 2026/4/20 12:16:14

高性能开源PLC编程平台:OpenPLC Editor工业自动化开发完整解决方案

高性能开源PLC编程平台:OpenPLC Editor工业自动化开发完整解决方案 【免费下载链接】OpenPLC_Editor 项目地址: https://gitcode.com/gh_mirrors/ope/OpenPLC_Editor OpenPLC Editor作为一款基于PLCopen国际标准的开源工业自动化编程平台,为工业…

作者头像 李华
网站建设 2026/4/20 12:14:15

Cursor Pro限制突破终极指南:免费畅享AI编程助手的完整方案

Cursor Pro限制突破终极指南:免费畅享AI编程助手的完整方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached you…

作者头像 李华
网站建设 2026/4/20 12:13:14

Qt信号管理三板斧:connect、disconnect、blockSignals实战场景全解析

Qt信号管理三板斧:connect、disconnect、blockSignals实战场景全解析 在Qt开发中,信号与槽机制是构建响应式应用的核心支柱。但真正掌握这项技术的关键,不在于简单的语法使用,而在于如何根据不同的场景需求,灵活组合c…

作者头像 李华
网站建设 2026/4/20 12:09:17

2026年国产数据同步工具对比评测:DataX、Canal、Flink CDC与FineDataLink深度横评

一、开篇引入在数据驱动决策成为企业共识的2026年,数据同步工具作为打通数据孤岛、实现数据实时流转的核心基础设施,其选型质量直接影响企业数据架构的稳定性与业务响应速度。据赛迪顾问《2024-2025中国企业级软件应用市场研究年度报告》显示&#xff0c…

作者头像 李华