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

张开发
2026/4/20 12:21:22 15 分钟阅读

分享文章

实战教程: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 核心概念索引(Index)相当于MySQL的数据库用于归类数据文档(Document)相当于MySQL的一行数据以JSON格式存储字段(Field)文档中的属性相当于MySQL的列RESTful APIES通过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: true3.2 操作2单条数据索引插入文档作用向索引中添加JSON格式数据请求方式POST请求地址http://localhost:9200/user/_doc/11为文档ID请求体{name:张三,age:25,city:北京,intro:我是一名后端开发工程师擅长Java和Elasticsearch}成功返回result: created3.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必须满足ANDshould满足其一ORfilter过滤不计算得分示例北京 年龄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 删除数据请求方式DELETEhttp://localhost:9200/user/_doc/15.3 删除索引请求方式DELETEhttp://localhost:9200/user六、索引搜索完整执行流程底层原理写入数据索引文档分词处理生成倒排索引存储到分片搜索数据输入关键词分词解析查询倒排索引匹配文档ID返回结果排序高亮七、高频搜索语法总结搜索类型关键字适用场景查询所有match_all列表展示全文检索match中文搜索、模糊匹配精确匹配term城市、状态、ID范围查询range年龄、价格、时间组合查询bool多条件筛选高亮展示highlight搜索结果关键词标红分页排序from/size/sort分页列表八、总结索引数据先创建索引定义结构→ 单条/批量插入JSON文档搜索数据使用match/term/bool实现全文、精确、组合搜索核心能力分词检索、毫秒级响应、高亮、分页、聚合分析最佳实践text用于全文搜索keyword用于精确匹配The End点点关注收藏不迷路

更多文章