Elasticsearch 基础速成 5 步跑通索引、文档、映射与查询

1 · 准备工作

  • 运行环境

    curl -fsSL https://elastic.co/start-local | sh   # 一条命令拉起本地单节点集群
    # 浏览器打开 http://localhost:5601 进入 Kibana → DevTools → Console
    

    已有云端或 Serverless 集群可以直接跳到第 2 步。

  • 操作界面
    以下所有请求均可在 Kibana → DevTools → Console 里粘贴执行。
    Console 还能一键转换成 cURL / Python / Go 等代码片段,方便集成。

2 · 创建索引 books

PUT /books
  • 返回 {"acknowledged": true, "shards_acknowledged": true, …} 表示创建成功。
  • 若索引不存在也可在插入文档时自动创建,不过手动显式建索引能提前配置分片、副本及映射。

3 · 写入文档

3.1 单条写入

POST /books/_doc
{"name": "Snow Crash","author": "Neal Stephenson","release_date": "1992-06-01","page_count": 470
}
  • ES 会自动生成 _id 并立刻可搜索(近实时,默认 1 s 刷新)。

3.2 批量写入(Bulk)

POST /_bulk
{ "index": { "_index": "books" } }
{"name":"1984","author":"George Orwell","release_date":"1949-06-08","page_count":328}
{ "index": { "_index": "books" } }
{"name":"Brave New World","author":"Aldous Huxley","release_date":"1932-06-01","page_count":268}
…
  • NDJSON:一行动作元数据 + 一行文档,配对出现。
  • 批量导入效率远高于逐条 POST,生产环境建议控制在 5 MB / 5000 条左右一批。

4 · 映射(Mapping)入门

4.1 动态映射(Dynamic)

默认情况下,ES 会 自动推断字段类型 并写入 mapping。
下面插入一个带新字段 language 的文档:

POST /books/_doc
{"name": "The Great Gatsby","author": "F. Scott Fitzgerald","release_date": "1925-04-10","page_count": 180,"language": "EN"
}

查看 mapping:

GET /books/_mapping

可见 language 已被标记为 text 类型。

优点:零配置、快速迭代
缺点:类型不可控,易出现 keyword/text 混用、日期被识别成 text 等问题

4.2 显式映射(Explicit)

PUT /my-explicit-mappings-books
{"mappings": {"dynamic": false,             # 禁用自动识别"properties": {"name":         { "type": "text" },"author":       { "type": "text" },"release_date": { "type": "date",    "format": "yyyy-MM-dd" },"page_count":   { "type": "integer" }}}
}
  • 未声明字段仍会存进 _source但无法搜索/聚合
  • 若想同时兼顾灵活性,可保留 dynamic: true,只对关键字段做显式类型声明,形成 混合策略

5 · 第一次搜索

5.1 全量查询

GET /books/_search

默认返回前 10 条文档,含 _score_source 等元信息。

5.2 match 全文检索

GET /books/_search
{"query": {"match": {"name": "brave"}}
}
  • match 会自动分词,Brave New WorldBrave-something 均可命中。
  • 若需精确匹配未分词文本可改用 term 或将字段映射为 keyword

6 · 可选:删除索引重来

DELETE /books
DELETE /my-explicit-mappings-books

不可恢复:文档、分片、映射将永久丢失,谨慎操作。

小结 & 下一步

已掌握推荐深入
✅ 创建/删除 Index分片、副本、ILM 生命周期
✅ 单条 & Bulk 写入Ingest Pipeline、动态模板
✅ 动态 vs 显式映射多字段(fields)/ keyword + text 组合
✅ 基础搜索复合查询(bool)、分页、高亮、聚合

当你能熟练写出 Bulk + 显式映射的索引脚本、并用 match/bool 检索到想要的书籍,就已经完成从 数据写入实时检索 的最小闭环。
接下来可以挑战 向量搜索、ES|QL、监控告警 等更高阶能力,打造真正生产级的搜索服务 🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/91253.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

语音表示学习论文总结

语音表示学习(Speech Representation Learning)是语音信号处理与机器学习交叉领域的核心技术,其目标是通过数据驱动的方式,从原始语音信号中自动提取具有判别性、鲁棒性和泛化能力的特征表示,以替代传统手工设计的声学…

国产芯+单北斗防爆终端:W5-D防爆智能手机,助力工业安全通信升级

在石油石化、煤矿开采、电力检修等高危行业,防爆设备的定位精度、通信可靠性及供应链安全性直接决定作业安全与生产效率。传统防爆手机依赖GPS定位与进口芯片,存在信号盲区、数据泄露风险及断供隐患。针对此,我们推出W5-D防爆智能终端&#x…

Kafka简述及学习课程

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现…

BLE PHY 帧结构

BLE(低功耗蓝牙)的 PHY(物理层)帧结构根据传输模式(广播、数据)和 PHY 类型(1M、2M、Coded PHY)有所差异,但基本框架一致。以下是 BLE PHY 帧的通用结构及各部分含义&…

海外货运 app 系统架构分析

一、引言海外货运业务涉及众多复杂环节,从货物揽收、仓储管理、运输调度到最后交付,需要一个高效、稳定且功能全面的 APP 系统来协调各方资源,提升物流效率,保障货物安全准确送达。本文将对海外货运 APP 系统架构进行详细剖析&…

【硬件-笔试面试题】硬件/电子工程师,笔试面试题-52,(知识点:简单一阶低通滤波器的设计,RC滤波电路,截止频率)

目录 1、题目 2、解答 3、相关知识点 一、一阶低通滤波器的核心原理 1. 电路结构 2. 关键特性参数 二、一阶低通滤波器的设计步骤(以 RC 电路为例) 1. 确定截止频率\(f_c\) 2. 选择电阻 R 的阻值 3. 计算电容 C 的容值 4. 验证与调整 三、典…

防火墙安全实验

一、实验拓补图二、实验需求1、VLAN 2属于办公区;VLAN 3属于生产区2、办公区PC在工作日时间(周一至周五,早8到晚6)可以正常访OA Server,其他时间不允许3、办公区PC可以在任意时刻访问Web server4、生产区PC可以在任意时刻访问OA Server,但是不…

TOC-Transformer-LSTM-ABKDE,计算机一区算法龙卷风优化算法应用到概率区间预测!Matlab实现

TOC算法概述 文献《Tornado optimizer with Coriolis force: a novel bio-inspired meta-heuristic algorithm》核心解读:科里奥利力的龙卷风优化算法(Tornado optimizer with Coriolis force,TOC)对龙卷风循环过程的观察以及雷暴…

Adobe Illustrator安装下载教程(附安装包)Illustrator2025

文章目录一、Illustrator2025 下载链接二、Illustrator2025 安装步骤三、Illustrator 2025 软件介绍一、Illustrator2025 下载链接 夸克下载链接:https://pan.quark.cn/s/b990bac7107c 二、Illustrator2025 安装步骤 1.将安装包下载并解压,双击打开&am…

matlab - 算4个数的加减法

文章目录matlab - 算4个数的加减法概述笔记ENDmatlab - 算4个数的加减法 概述 有个类似于下面的4个数的加减法,给出任意一组解就行。 反正都是遍历, c可以,matlab也可以。 笔记 % file test.m % brief 用matlab来算"4个数的加减法" %a b…

C++ 1.面向对象编程(OOP)框架

目录 面向对象编程(OOP)框架 问题背景 OOP框架开发的关键问题解析 步骤1:抽象设计阶段 步骤2:继承层次设计 步骤3:多态机制应用 步骤4:对象关系管理 这个案例展现的核心OOP价值 封装的价值 继承的价值 多态的价值 实际…

mac操作笔记

mac的操作笔记opt文件夹是干什么的?如何在某个访达的文件夹里快速打开终端opt文件夹是干什么的? 在 macOS 中,/opt 目录是一个可选(optional)软件安装目录,主要用于存放第三方或非系统原生的应用程序。 /…

红黑树×协程×内存序:2025 C++后端核心三体问题攻防手册

以下是2025年C后端开发全新高频压轴面试题,结合腾讯、字节、阿里等大厂最新技术栈,聚焦红黑树工程实践、C20协程底层、Linux内核同步、分布式锁实现及内存序重排五大核心领域,附工业级解决方案和手撕代码示例: 🌳 一、…

《人工智能导论》(python版)第2章 python基础2.2编程基础

书写这篇博客的目的在于实践并记录《人工智能导论》(Pyhton版)微课视频版这本书的内容,便于对人工智能有更深层次的理解。 参考文献:姜春茂.人工智能导论(Python版)微课视频版[M]. 北京:清华大学出版社,20…

高可用部署

一.keeplivaer nginx 高可用部署 下面为你详细介绍基于 Keepalived 和 Nginx 在两台机器(192.168.137.132 和 192.168.137.61)上实现高可用部署的完整步骤: 一、环境准备(两台服务器均执行)环境准备 (1&…

java面向对象高级02——单例类(设计模式)

1.什么是设计模式?一个问题可以有多种解法,在众多解法的最优解法、方案就是设计模式。我们关注的点:某一种设计模式解决的是啥问题?这一设计模式怎么写?2.单例设计模式a.作用单例设计模式的核心作用是确保一个类只有一…

0730 数据结构重点整理

Part 1.梳理数据结构重点一.宏1.简单宏a. #define 宏名 宏体b. #if 宏(#ifndef)c.#endif2.多语句宏a. define 宏函数名(参数1,参数2......)({C语句1,C语句2......})b. define 宏函数名(参数1,参数2......)do(C语句1,C语句2......)…

免费版酒店押金原路退回系统之【房费押金计算器】实践——仙盟创梦IDE

代码<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>未来之窗——费用计算器</title><s…

Windows下基于 SenseVoice模型的本地语音转文字工具

Windows下基于 SenseVoice模型的本地语音转文字工具 前言&#xff1a; ​ 现在很流行Vibe Coding但是指挥大模型写代码其实也是一件非常累的事情&#xff0c;经常需要输入大段的文字去描述问题的现象以及具体的解决方案。刚好看到有一些博主通过本地部署语音大模型实现了语音转…

OWSM v4 语音识别学习笔记

目录 OWSM v4 简介 卡内基梅隆大学 这个代码不知道干嘛的 tokenizer CTC分割算法 yodas2数据集 依赖性安装&#xff1a; 数据集下载地址&#xff1b; 模型下载地址&#xff1a; docker安装&#xff08;适用于多数 Linux 系统&#xff09;测试ok 推理demo OWSM v4 简介…